背景:需要統計一段時間內上傳到SVN服務器的代碼行數,SVN沒有自帶功能,不過可以通過使用一個Java工具:satasvn.jar來快速完成統計
前期準備:
1. 確認svn版本安裝的時候提供了命令行功能:測試方法,進入cmd窗口,輸入svn log,觀察輸出內容:
能夠執行命令則OK,若不能,需要重新安裝svn,且注意選擇命令行模塊:
2. 安裝JDK環境:測試方法,在cmd命令行窗口輸入java -version查看輸出:
如果這裏沒有輸出,則需要下載安裝JDK
準備工作完成後,需要學習兩個命令(並不是python,方便顯示選擇這個編輯框):
G:
cd G:\E
svn log -r {2017-11-8}:{2018-1-10} --xml -v > d:\svnlog\svn.log # 命令1
# -r 後面也可以直接寫log號,如此便只統計指定log的內容
D:
cd D:\svnlog
java -jar statsvn.jar d:\svnlog\svn.log G:\E -output-dir D:\SVNLog\logs # 命令2
pause
對於命令1:
首先將文件夾定位到代碼checkout到本地的首目錄,然後執行svn log功能,-r表示read,後邊的{}:{}表示log分部的日期,--xml是存儲格式 -v則是生成日誌 > 表示輸出路徑 後邊接輸出路徑,這一套操作可以得到所有這個時間段內的提交內容的log信息,這裏並不包含代碼行數等詳細信息,只是爲下一步服務的一箇中間文件。
第一步生成的文件爲:svn.log
命令2:
java -jar 運行jar程序; 第一個參數是要解析的log文件路徑,第二個參數“G:\E”是上一個命令中統計的代碼的路徑,然後是指定輸出文件的路徑
這一步能夠就上一個svn.log中生成的每個記錄統計代碼改動行數,生成統計結果
直接把上述的命令行寫入到一個bat文件裏,雙擊就能夠快速執行統計,非常方便。
問題處理:
1. 注意是不是SVN的代碼更改過路徑,如果有過需要修改生成的中間文件:svn.log的內容,替換路徑
2. 注意指定的路徑是否正確
3. bat出錯的時候最好輸入命令行窗口中看反饋信息,比Bat窗口的提示信息更有價值一點
統計結果格式:
1批html文件,入口文件爲index.html,打開後可以看到詳細的改動信息,這裏點擊developers按鈕可以看到每個參與者的改動數據,即完成了代碼統計任務。
正在運行:
index.html:
Developers: