程序員實用工具,推薦一款代碼統計神器GitStats

閱讀全文需7分鐘,工具很實用。css

1. 前言

對於Git項目開發,有一些可視化的工具,如gitk,giggle等,來查看項目的開發歷史。但對於大型的項目,這些簡單的可視化工具遠遠不足以瞭解項目完整的開發歷史,一些定量的統計數據(如每日提交量,行數等)更能反映項目的開發進程和活躍性。今天給你們推薦的這款工具:GitStats,它能生成以下的一些統計數據,而且能夠圖表形式進行展現對比。html

2. 進一步瞭解Gitstats

進一步來說,Gitstats它是一個git倉庫分析軟件,它能夠檢查倉庫並生成歷史數據的統計信息。能夠幫助你查看git倉庫的提交狀態,根據不一樣維度分析計算,並自動生成數據圖表。python

官網介紹:http://gitstats.sourceforge.net/git

當前GitStats所生成統計信息經常使用分爲以下幾類:github

  • 常規的統計: 文件總數,行數,提交量,做者數。
  • 活躍性: 天天中每小時的、每週中天天的、每週中每小時的、每一年中每個月的、每一年的提交量。
  • 做者數: 列舉全部的做者(提交數,第一次提交日期,最近一次的提交日期),並按月和年來劃分。
  • 文件數:按日期劃分,按擴展名名劃分。
  • 行數: 按日期劃分。

3. 命令行安裝

安裝使用很是簡單,若是是ubuntu,直接apt-get 便可,下面介紹幾款不一樣操做系統下的安裝方式。ubuntu

Ubuntu:windows

apt-get install gitstats

CentOS:bash

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項目爲例。

一、下載克隆Requests源碼到本地。

git clone https://github.com/psf/requests.git

二、進入到gitstats目錄,並將gitstats拷貝爲gitstats.py文件,參考上述第4小節介紹。

cp gitstats gitstats.py

三、查看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

四、執行統計命令:

python gitstats.py ../requests ./test

五、統計執行結束後,在本地生成了test結果目錄,目錄生成的文件結構以下所示。
image

打開index.html報告,以下圖所示。首先,在gitstats上提供了全局的統計數據報告,包括:

  • 報告產生時間及產生所花費的時間:如花費了11秒
  • 報告所覆蓋的時間:如2011年02月14日至2019年11月23日
  • 年齡:該repo的年紀,如「3206天,其中1400天是活躍天.」
  • 文件數及代碼:如:101個文件,2萬5千行代碼。
  • 做者數:如645,每一個做者平均提交次數9.2次。

image

除此以外,還包括了:

1. 時間維度的效率分析:天天中每小時的、每週中天天的、每週中每小時的、每一年中每個月的、每一年的提交量。
image
image

2. 提交者維度的活躍度統計:列舉全部的做者(提交數,第一次提交日期,最近一次的提交日期),並按月和年來劃分。
image

3. 按照文件數:按日期劃分,按擴展名名劃分。
image

4. 根據提交行數或提交的tag來統計。

image

若是你是團隊領導,關心團隊的開發效率和工做激情;若是你是開源軟件開發者,維護者某個repo;又或者,你關心某個開源軟件或者當前開發團隊的進度,那麼你能夠試一試gitstats。

點擊可查看原文,但願這篇文章能幫到你!更多幹貨文章請關注咱們。

原文發表於公衆號:【測試開發技術】,歡迎關注我咱們!

相關文章
相關標籤/搜索