git-hours, 在git知识库上,估计所花费的时间

分享于 

5分钟阅读

GitHub

  繁體 雙語
Estimate time spent on a git repository
  • 源代码名称:git-hours
  • 源代码网址:http://www.github.com/kimmobrunfeldt/git-hours
  • git-hours源代码文档
  • git-hours源代码下载
  • Git URL:
    git://www.github.com/kimmobrunfeldt/git-hours.git
    Git Clone代码到本地:
    git clone http://www.github.com/kimmobrunfeldt/git-hours
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/kimmobrunfeldt/git-hours
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Git小时

    Build Status

    估计在git存储库上花费的时间。

    例如在 Twitter Bootstrap 上花费的时间为

    ➜ bootstrap git:(master) git hours
    {
     ..."total": {
     "hours":9959,
     "commits":11470 }
    }

    对于每天工作 8小时的人来说,构建 Bootstrap 需要超过 3年的时间。

    注意:这些信息可能不够精确,不能用于帐单。

    安装

    
    $ npm install -g git-hours
    
    
    
    

    已经测试并使用 node 0.12,4. x, 5. x, 6.x 版本。 不使用 node 版本低于 0.12

    注意:如果由于某些原因,git hours 无法正常工作,尝试 npm install -g nodegit

    git-hours 依赖于 nodegit。 安装可能有点棘手。 如果由于某些原因安装git小时失败,可能是因为nodegit无法安装。 检查的文档文件,以便进行疑难解答。

    如果安装太麻烦,可以尝试用Vagrant安装。 一旦你把Vagrant正确安装到机器上,它就能正常工作。

    工作原理

    估计小时的算法非常简单。 对于提交历史记录中的每个作者,执行以下操作:



    所有提交,并在时间上比较它们之间的差异。




    如果差异小于或者等于给定阈值,则将提交分组到相同的编码会话。




    但是,如果差异大于给定阈值,则代码会话将结束。




    首先,为了补偿它的工作未知的第一个提交,我们向代码会话添加额外的。




    在确定所有代码会话并将各个作者所做的时间相加之前,继续。


    算法在 ~30 代码行中实现。

    用法

    在git仓库运行的root 中:

     
    $ git hours
    
    
    
     

    注意:如果你不在存储库的中,则不会检测到 !

    帮助

    
    Usage: githours [options]
    
    
    
    Options:
    
    
    
     -h, --help output usage information
    
    
     -V, --version output the version number
    
    
     -d, --max-commit-diff [max-commit-diff] maximum difference in minutes between commits counted to one session. Default: 120
    
    
     -a, --first-commit-add [first-commit-add] how many minutes first commit of session should add to total. Default: 120
    
    
     -s, --since [since-certain-date] Analyze data since certain date. [always|yesterday|tonight|lastweek|yyyy-mm-dd] Default: always'
    
    
    
    Examples:
    
    
    
     - Estimate hours of project
    
    
    
     $ git hours
    
    
    
     - Estimate hours in repository where developers commit more seldom: they might have 4h(240min) pause between commits
    
    
    
     $ git hours --max-commit-diff 240
    
    
    
     - Estimate hours in repository where developer works 5 hours before first commit in day
    
    
    
     $ git hours --first-commit-add 300
    
    
    
     - Estimate hours work in repository since yesterday
    
    
    
     $ git hours --since yesterday
    
    
    
     - Estimate hours work in repository since 2015-01-31
    
    
    
     $ git hours --since 2015-01-31
    
    
    
    For more details, visit https://github.com/kimmobrunfeldt/git-hours
    
    
    
    

    使用Vagrant安装

    如果你喜欢使用 vagrant,下面是操作方法:

    可以使用 Vagrant自动设置具有所需环境的一次性虚拟机,并安装该程序。

    
    $ git clone https://github.com/kimmobrunfeldt/git-hours
    
    
    $ cd git-hours
    
    
    $ vagrant up && vagrant ssh
    
    
    
    

    就是这样,现在可以测试git小时了。 例如:

    
    $ git clone https://github.com/twbs/bootstrap
    
    
    $ cd bootstrap
    
    
    $ git hours
    
    
    {
    
    
    "total": {
    
    
    "hours": 6417,
    
    
    "commits": 9779
    
    
     }
    
    
    }
    
    
    
    

    当你完成了游戏,你可以干净地删除你的系统,通过运行以下命令从你的系统中删除虚拟机:

    
    $ exit
    
    
    $ vagrant destroy -f
    
    
    
    

    运行 Docker

    在要分析的git repo 中安装 Docker 并运行以下命令:

    
    docker run --rm -v $(pwd):/code khor/git-hours
    
    
    
    

    它在 Docker 容器中装载当前目录( pwd ) 并在它的上运行 git hours


    rep  REPO  GIT  时间  Repository  git-repo  
    相关文章