1. 程式人生 > >程式設計師實用工具,推薦一款程式碼統計神器GitStats

程式設計師實用工具,推薦一款程式碼統計神器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。

點選可檢視原文,希望這篇文章能幫到你!更多幹貨文章請關注我們。

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