标签存档: Git

开源 GitStatX:一个 gitstats 的 GUI 应用程序

GitStatX 是一个 gitstatx 的 GUI 应用程序,用于方便在 Mac OS X 中使用 gitstats。

一般情况下,如果要在 Mac OS X 上使用 gitstats,需要自行安装 gnuplot,而这需要使用 macports 或者 homebrew,通常这会比较费时间,并且只能使用命令行来使用 gitstats 生成所对应 git 仓库的报告。

GitStatX 提供了一个 GUI 来使用 gitstats,具备以下功能:

  • 同时管理多个项目
  • 使用分组来归类各个项目
  • 标识项目类型
  • 自动生成报告
  • 导出仓库的活动报告

截图

项目主页

仓库地址

下载

查看所有下载

授权

本软件及代码以 GPLv3 授权发行。

相关代码

  • 使用 bootstrap 样式的 gitstats:

  • 修正可执行文件依赖库的脚本:
  • 联系我

    — EOF —

    给 iOS 项目添加自动更新属性

    在 iOS 项目中,有些时候为了方便跟踪发布时的版本,方便调试,或者为了展示程序的编译日期,可以通过在 Info.plist 里面添加自定义属性的方式来实现,但是这个工作是一个纯粹机械的重复劳动,每次手工去更新是比较麻烦的一个事情。

    好在 Xcode 项目支持自定义脚本的编译步骤,我们可以通过在编译过程中使用自定义脚本去更新 Info.plist。

    在 /usr/libexec 目录下面,有一个工具 PlistBuddy,它可以很方便地修改 plist 文件,而不需要去用 sed 之类的编辑工具来修改。

    为了在使用 PlistBuddy 的时候可以直接用 Set 命令设置属性,我们先在 iOS 项目的 Info.plist 里面加一个需要自动更新的属性,例如 BUILD_DATE 和 GIT_REVISION,类型选择为字符串,值填 AUTO_GENERATED。

    然后在 iOS 项目的 Target 上添加一个新的编译步骤 Run Script Build Phase:

    下页就是要编写脚本了

    # 获取编译的日期
    DATE=`date +%Y.%m.%d`
     
    # 获取编译时 Git 库的短版本号
    GIT_REVISION=`git rev-parse --short HEAD`
     
    # 设置 Info.plist 中相关的属性
    /usr/libexec/PlistBuddy "$TARGET_BUILD_DIR/$INFOPLIST_PATH" -c "Set BUILD_DATE $DATE"
    /usr/libexec/PlistBuddy "$TARGET_BUILD_DIR/$INFOPLIST_PATH" -c "Set GIT_REVISION $GIT_REVISION"
     
    # 将 Info.plist 转换为二进制格式
    plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"

    如果需要在程序里获取这些属性,那么就可以用下面的方法:

    NSString *buildDate = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"BUILD_DATE"];
    NSString *revision = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GIT_REVISION"];

    — EOF —

    Snow Leopard Server 上配置 Gitosis 笔记

    为了迁移项目 Git 仓库到 Mini Server 上,需要在 Snow Leopard Server 上配置一下 Gitosis,但是 Mac OS X 和 Linux 不太一样,有些地方需要特殊处理一下。

    安装 Gitosis

    Gitosis 的安装就不多说,在参考文档2中有。

    添加 Git 用户组及用户

    添加用户可以用参考文档1中的方法来创建,没有尝试直接用 OSX 的用户管理来创建是否可用。

    # 这里的用户组和用户ID 用 401,但是实际用时需要根据服务器上的情况来创建
    # 我在使用时 401 这个 gid 就已经被占用了,可以使用以下两个命令看看要用的
    # ID 是否已经被用了。
    sudo dscl . list /Users uid
    sudo dscl . list groups gid
     
    # 创建用户组 git
    sudo dscl . create groups/git
    sudo dscl . create groups/git gid 401
     
    # 创建用户 git
    sudo dscl . create users/git
    sudo dscl . create users/git uid 401
    sudo dscl . create users/git NFSHomeDirectory /Users/git
    sudo dscl . create users/git gid 401
    sudo dscl . create users/git UserShell /bin/bash
    sudo dscl . create users/git Password '*'
     
    # 创建用户主目录,Git 仓库就要放在里面
    sudo mkdir /Users/git
    sudo chown git /Users/git
    sudo chgrp git /Users/git
     
    # 下面这一句是把 git 用户添加到可以使用 ssh 访问的用户组里面
    # 如果不执行这句的话,git push 或者 git pull 等等的时候会出错
    sudo dscl . -append /Groups/com.apple.access_ssh GroupMembership git

    配置 Gitosis

    这个在参考文档2中都有详细说明。

    参考文档

    1. git hosting with Leopard, Ian White
    2. 权限管理器 Gitosis, Pro Git
    3. Adduser for Mac OS X = dscl + niutil + nicl, otaku ramblings