我正在尋找能夠顯示多久提交svn修改文件的內容。我希望能夠看到哪些文件經常發生更改,發生頻率如何。最好還應該按目錄對「報告」進行分組,以便能夠看到每個項目的變化頻率。svn - 每個文件或目錄的提交頻率
哪個工具提供這種能力?
(如果該事項 - 我還使用Maven和語言主義主要是JAVA)
我正在尋找能夠顯示多久提交svn修改文件的內容。我希望能夠看到哪些文件經常發生更改,發生頻率如何。最好還應該按目錄對「報告」進行分組,以便能夠看到每個項目的變化頻率。svn - 每個文件或目錄的提交頻率
哪個工具提供這種能力?
(如果該事項 - 我還使用Maven和語言主義主要是JAVA)
雖然有SVN內部命令生成報告,我會建議使用魚眼鏡頭的工具Atlassian的嘗試。 它是一個付費工具,但是提供了大量的細節,特定用戶提交的文件數量,提交的文件數量,並以圖形格式提供報告。
在Subversion中沒有標準的工具可以做到這一點。但是,我可以看到一種可能的方式,但可能需要一段時間。
首先,您需要生成存儲庫中所有文件的列表。這應做到:
$ svn ls -R $REPO
然後,你可以使用它作爲輸入,並以某種方式生成每個文件的報告:
$ svn ls -R $REPO | while read $file
do
here be dragons
done
我們需要擺脫文件(現在的BASH和Kornshell具體)的:
$ svn ls -R $REPO | while read $file
do
[[ $file == */ ]] && continue
here be dragons
done
然後,我們需要弄清楚如何計算所有的變化。 svn log
應該這樣做。如果再算上那些由無非是破折號所有線路,應該給我們一個計數:
$ svn ls -R $REPO | while read $file
do
[[ $file == */ ]] && continue
count=$(svn log $REPO/$file | grep "^--*$" | wc -l)
echo "$REPO/$file: $count"
done
沒有與此的幾個問題:
這是一個開始。您可以通過svn log
中的-r
參數來限制日期範圍。如果某個文件中的大部分修訂都來自兩年前,那麼您可能並不在意文件是否進行了大量修改。而且,這可能是shell腳本的限制。該邏輯可以移植到Python或Perl,並且可以在那裏完成更多。
「讀取$文件」 ,例如它應該是「讀取文件時」,不應該有$。 否則它工作正常!
我相信這是以前問/答 http://stackoverflow.com/questions/402964/tool-to-generate-change-reports-from-subversion-logs – BillH