阅读全文需 7 分钟,工具很实用。
1. 前言
对于 Git 项目开发,有一些可视化的工具,如 gitk,giggle 等,来查看项目的开发历史。但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发历史,一些定量的统计数据(如每日提交量,行数等)更能反映项目的开发进程和活跃性。今天给大家推荐的这款工具:GitStats,它能生成如下的一些统计数据,并且可以图表形式进行展示对比。
2. 进一步了解 Gitstats
进一步来讲,Gitstats 它是一个 git 仓库分析软件,它可以检查仓库并生成历史数据的统计信息。可以帮助你查看 git 仓库的提交状态,根据不同维度分析计算,并自动生成数据图表。
官网介绍:http://gitstats.sourceforge.net/
当前 GitStats 所生成统计信息常用分为如下几类:
- 常规的统计: 文件总数,行数,提交量,作者数。
- 活跃性: 每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。
- 作者数: 列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。
- 文件数:按日期划分,按扩展名名划分。
- 行数: 按日期划分。
3. 命令行安装
安装使用非常简单,如果是 ubuntu,直接 apt-get 即可,下面介绍几款不同操作系统下的安装方式。
Ubuntu:
apt-get install gitstats
CentOS:
yum install gitstats
Mac:
brew install --HEAD homebrew/head-only/gitstats
如果是 Mac,那还得装个 gnuPlot,GitStats 在 Windows 下使用时需要安装有 Python、Git,Gnuplot。
- Python:GitStats 本身就是一个 python 脚本,windows 下我们需要用 python 命令来运行 GitStats。
- Git:这个不用解释也知道是必须的。
- Gnuplot:Gnuplot 一个命令行的交互式绘图工具。
4. 源码安装及使用
打开 gitbash 或者其他 git 客户端,输入如下命令:
git clone git://github.com/hoxu/gitstats.git
下载完成后,进入 gitstats 目录,将 gitstats 拷贝为 gitstats.py 文件
$ cp gitstats gitstats.py
然后执行统计命令
$ python gitstats.py ../xxx_pro/ ./test
../xxx_pro/ 为工程所在目录。
./test 为结果文件目录。
完成后,进入 test 目录,双击 index.html 文件查看统计结果。
5. 具体实操
为了便于读者能直观感受到,下面通过具体实操,带大家来领略 gitstats 的作用,以 Requests 项目为例。
1、下载克隆 Requests 源码到本地。
git clone https://github.com/psf/requests.git
2、进入到 gitstats 目录,并将 gitstats 拷贝为 gitstats.py 文件,参考上述第 4 小节介绍。
cp gitstats gitstats.py
3、查看 gitstats 目录结构:
➜ gitstats git:(master) ✗ tree -L 1
.
├── Makefile
├── arrow-down.gif
├── arrow-none.gif
├── arrow-up.gif
├── doc
├── gitstats
├── gitstats.css
├── gitstats.py
├── sortable.js
└── test
2 directories, 8 files
4、执行统计命令:
python gitstats.py ../requests ./test
5、统计执行结束后,在本地生成了 test 结果目录,目录生成的文件结构如下所示。
打开 index.html 报告,如下图所示。首先,在 gitstats 上提供了全局的统计数据报告,包括:
- 报告产生时间及产生所花费的时间:如花费了 11 秒
- 报告所覆盖的时间:如2011年02月14日至2019年11月23日
- 年龄:该 repo 的年纪,如 “3206 天,其中 1400 天是活跃天.”
- 文件数及代码:如:101 个文件,2 万 5 千行代码。
- 作者数:如 645,每个作者平均提交次数 9.2 次。
除此之外,还包括了:
1. 时间维度的效率分析:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。
2. 提交者维度的活跃度统计:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。
3. 按照文件数:按日期划分,按扩展名名划分。
*4. 根据提交行数或提交的 tag 来统计。 *
如果你是团队领导,关心团队的开发效率和工作激情;如果你是开源软件开发者,维护者某个 repo;又或者,你关心某个开源软件或者当前开发团队的进度,那么你可以试一试 gitstats。
点击可查看原文,希望这篇文章能帮到你!更多干货文章请关注我们。
原文发表于公众号:【测试开发技术】,欢迎关注我我们!