2011-05-05 17 views
0

讓我通過說我對源代碼控制比較陌生,因此我可能會在這裏誤用一些術語。從Subversion版本庫中的多個簽入獲取文本摘要

我試圖得到一個多重簽證淨結果的文本diff摘要。因此,例如,對於簽入 「Checkin1」 和 「Checkin2」,我想看到的東西,如:

文件:\ foo.txt的去除線75

線64, 「再見」 取代用「你好」

文件:\跳回到bar.txt刪除線30-50

我對格式非常靈活 - 它真的只是有一個人是可以理解的,它必須是一個大量連續的文本,而不是交互式的用戶界面的東西(它將進入一個Word文件)。我需要能夠忽略空白變化,因爲這些與我的輸出無關。

我一直在使用TortoiseSVN,而且我之後看起來像很多就像TortoiseSVN的「show changes as unified diff」功能一樣。然而,不幸的是,統一的差異不會忽略空白的變化,所以我最終得到巨大的差異。

回答

0

有一對夫婦Subversion命令行命令,您可能會發現得心應手:

svn log -v 

這將列出的命令,第一行會列出D當文件被添加或從庫中刪除A

對於文件已被修改,你可以使用這個命令:

svn diff -r($rev-1):$rev $fileName 

這將列出標準差異格式的變化。這將爲您提供行號和這些行上的更改。

目前還沒有可以按照您想要的方式對事物進行格式化的工具,但應該可以在幾個小時內創建Perl或Python腳本。

這似乎是一個不尋常的要求。開發人員可以輕鬆理解差異和日誌的輸出,因此這不適用於開發人員。然而,那些不是開發人員的人不會理解刪除文件'qualityServiceBeanSkel.java已將「float morphObjectScan」更改爲「double morphObjectScan」

+0

這很有用 - 我可能會嘗試寫一個腳本。添加更多信息 - 這對開發人員來說不是真的。我跟蹤的是XML模式的差異,最終將成爲國際標準的印刷版本。標準文本的所有其他更改都在Word文檔中進行跟蹤,因此我們必須有一種方法來跟蹤其中的模式更改。 – 2011-05-05 22:49:44

+0

我設法做出了一個很好的svn命令,並將我的子文件夾中的所有文件都包含在一個不錯的列表中:svn diff -r129:131 -x --ignore -eol-style「C:\ myrepos \\ * 。*「> c:\ temp.txt – 2011-05-06 03:18:53