程序員實用工具,推薦一款代碼統計神器GitStats
閱讀全文需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。
點擊可查看原文,希望這篇文章能幫到你!更多干貨文章請關注我們。
原文發表于公眾號:【測試開發技術】,歡迎關注我我們!

浙公網安備 33010602011771號