研发实用工具,推荐一款代码统计神器GitStats

简介: 研发实用工具,推荐一款代码统计神器GitStats

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结果目录,目录生成的文件结构如下所示。

微信图片_20220523201530.png


打开index.html报告,如下图所示。首先,在gitstats上提供了全局的统计数据报告,包括:

  • 报告产生时间及产生所花费的时间:如花费了11秒
  • 报告所覆盖的时间:如2011年02月14日至2019年11月23日
  • 年龄:该repo的年纪,如“3206天,其中1400天是活跃天.”
  • 文件数及代码:如:101个文件,2万5千行代码。
  • 作者数:如645,每个作者平均提交次数9.2次。


微信图片_20220523201559.png


除此之外,还包括了:

1. 时间维度的效率分析:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。

微信图片_20220523201626.png



2. 提交者维度的活跃度统计:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。

微信图片_20220523201657.png


3. 按照文件数:按日期划分,按扩展名名划分。

微信图片_20220523201727.png


4. 根据提交行数或提交的tag来统计。 

微信图片_20220523201754.png


如果你是团队领导,关心团队的开发效率和工作激情;如果你是开源软件开发者,维护者某个repo;又或者,你关心某个开源软件或者当前开发团队的进度,那么你可以试一试gitstats。

目录
相关文章
|
监控 数据可视化 前端开发
高效管理团队表现:构建可视化的贡献度面板组件
高效管理团队表现:构建可视化的贡献度面板组件
352 0
|
自然语言处理 Java Go
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
1088 0
|
缓存 JavaScript Windows
windows环境下NPM / NodeJS的安装配置
npm(node package manager):nodejs的包管理器,用于node插件管理(包括安装、卸载、管理依赖等) 本文主要讲解如何搭建npm环境
9550 0
windows环境下NPM / NodeJS的安装配置
|
缓存 安全 关系型数据库
PolarDB 阿里云国产化数据库:linux系统下的详细安装步骤手册
PolarDB 阿里云国产化数据库:linux系统下的详细安装步骤手册
5926 0
PolarDB 阿里云国产化数据库:linux系统下的详细安装步骤手册
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
270081 0
|
消息中间件 数据可视化 NoSQL
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
7681 0
XXL-Job搭建(传统方式&Docker方式)与使用(Linux环境下)
|
开发工具 git 缓存
Git忽略规则.gitignore不生效
在项目开发过程中个,一般都会添加 .gitignore 文件,规则很简单,但有时会发现,规则不生效。 原因是 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
63419 5
|
9月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
379 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
人工智能 API 数据库
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
Browser Use 是一款专为大语言模型设计的智能浏览器工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
3669 0
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
|
缓存 Linux
CentOS7系统配置国内yum源和epel源
1.首先进入/etc/yum.repos.d/目录下,新建一个repo_bak目录,用于保存系统中原来的repo文件 [root@bogon ~]# cd /etc/yum.repos.d/ [root@bogon yum.
12618 57