我們在Mercurial中有2,000,000行代碼應用程序。很顯然,這個倉庫中有很多有價值的信息。什麼工具或技術可用於「數據庫」我的mercurial存儲庫?
是否有任何工具或技術可以挖掘出某些信息?
例如,在項目的歷史上,哪五個文件發生了最大的變化?五個文件與一年前的文件最爲不同?任何特定的代碼行看到了很多流失?
我對這種事情很感興趣。
有沒有辦法從我們的倉庫中提取這種信息?
我們在Mercurial中有2,000,000行代碼應用程序。很顯然,這個倉庫中有很多有價值的信息。什麼工具或技術可用於「數據庫」我的mercurial存儲庫?
是否有任何工具或技術可以挖掘出某些信息?
例如,在項目的歷史上,哪五個文件發生了最大的變化?五個文件與一年前的文件最爲不同?任何特定的代碼行看到了很多流失?
我對這種事情很感興趣。
有沒有辦法從我們的倉庫中提取這種信息?
我不知道任何專門爲此做的工具,但Mercurial的日誌模板對於從系統中獲取數據非常有用。我做了一下這種在過去的分析中,我的做法是:
hg log
轉儲提交一些方便的格式(在我的情況,XML)mystyle.txt::(模板)
XML到的東西可查詢下面是一個例子hg log
命令,讓你去(數據庫,或只是從XML直接,如果它不是太大工作)使用模板和日期範圍
changeset = '<changeset>\n<user>{author|user}</user>\n<date>{date|rfc3339date|escape}</date>\n<files>\n{file_mods}{file_adds}{file_dels}</files>\n<rev>{node}</rev>\n<desc>{desc|strip|escape}</desc>\n<branch>{branches}</branch><diffstat>{diffstat}</diffstat></changeset>\n\n'
file_mod = '<file action="modified">{file_mod|escape}</file>\n'
file_add = '<file action="added">{file_add|escape}</file>\n'
file_del = '<file action="deleted">{file_del|escape}</file>\n'
實例調用:
hg --repository /path/to/repo log -d "2012-01-01 to 2012-06-01" --no-merges --style mystyle.txt
嘗試內置hg churn擴展。有一件事我喜歡用它,例如,是看提交的這樣每月條形圖:
> hg churn -csf '%Y-%m'
2014-02 65 *************************************
2014-03 22 *************
2014-04 52 ******************************
2014-05 67 ***************************************
2014-06 31 ******************
2014-07 29 *****************
2014-08 29 *****************
2014-09 61 ***********************************
2014-10 36 *********************
2014-11 23 *************
2014-12 32 ******************
2015-01 60 ***********************************
2015-02 20 ************
(可能要設置別名,如果你發現你正在使用的命令往往不夠)
這不是真的[標籤:數據挖掘]。您正在尋求StatSVN/StatCVS爲其他版本控制系統提供的簡單,直接的統計數據。另外,這不是一個編程問題。 –
好吧,夠公平的。那麼如何從mercurial獲得這些微不足道的統計數據呢? –
尼克,你有沒有發現任何有用的東西,而不必滾動你自己的? – Rory