是否有任何好的工具可以計算mercurial存儲庫中特定時間段內更改的代碼行數?一些沿着statsvn行的東西會很棒,但是在6個月內任何計算改變的代碼行數的東西都可以(包括與hg log的參數的巧妙組合)。謝謝。隨着時間的推移計算更改的代碼行
PS:請不要討論這個測量數量的目的;)
是否有任何好的工具可以計算mercurial存儲庫中特定時間段內更改的代碼行數?一些沿着statsvn行的東西會很棒,但是在6個月內任何計算改變的代碼行數的東西都可以(包括與hg log的參數的巧妙組合)。謝謝。隨着時間的推移計算更改的代碼行
PS:請不要討論這個測量數量的目的;)
的hg churn extension是你想要的。
您可以通過hg activity或hg chart得到視覺效果。
我需要做到這一點,並花了相當多的時間與hg churn擴展和類似的解決方案。
最後,我發現,什麼工作最適合我的是CLOC(計數代碼行數):http://cloc.sourceforge.net/
你可以給它包含一個項目的兩個版本兩個文件夾,然後它就會計算所有的相同的行,修改,添加,刪除。它識別多種語言和條款代碼,評論和空白行。
要使用它,我從我的汞代碼兩個版本拉出爲兩條平行的文件夾,然後使用CLOC --diff - 忽略空格
編輯:hg diff
和hg log
都支持--stat
選項,可以爲你做到這一點,只有更好,更快。
我製作的一個叫做lines
爲我算更改的行(代碼不一定行)的別名。嘗試把這個別名在您的.hgrc文件:
[alias]
lines = !echo `hg log -pr [email protected] | grep "^+" | wc -l` Additions; echo `hg log -pr [email protected] | grep "^-" | wc -l` Deletions;
然後先通過它的修訂,其次是任何可選參數:
hg lines tip
或hg lines 123:456 -u brian
有時候你想知道的行數更改排除只有空白的更改。這需要使用diff -w
而不是log -p
。我成立了這個linesw
別名:
#ignore whitespace
linesw = ![[ $1 =~ : ]] && r=$1 || r="$1~1:$1"; echo `hg diff -wr $r | grep "^+\([^+]\|$\)" | wc -l` Additions; echo `hg diff -wr $r | grep "^-\([^-]\|$\)" | wc -l` Deletions;
hg linesw tip
或hg lines 123:456
注意他們的行爲略有不同,因爲diff
和log
行爲不同 - 例如,log
將採取--user
參數而diff
不會,當通過一個範圍時,log
將顯示在該範圍內提供的第一個修訂版提交的更改,而diff
則不會。
這只是使用bash進行測試。
請勿使用hg log命令。這還包括兩個提交ID之間線性回購協議的所有更改,包括當前分支未提交的提交。 – Paul 2018-03-06 10:20:57
http://code.google.com/p/gource/將執行此操作,並在此過程中看起來很漂亮。 :-) – Ken 2010-06-16 20:22:25