2014-01-22 42 views
0

回退有沒有一種簡單的方法來比較給定的修訂版本的最後更改?我正在尋找或類似於svn diff file.ext -PREV:HEAD的快捷方式,但prev相對於給定的修訂版號而不是HEAD。如何通過修訂

例如:

假設我有已經在R1,2,3,8被修改上在R10和文件的存儲,9 svn diff -rPREV:HEAD會給我R8的一個diff:10,這是必不可少與r8:9相同。但是如果我想比較8比較它的以前的狀態(r3)有沒有什麼辦法可以在不查看日誌的情況下進行比較,看看它何時發生變化並明確指定r3? -rPREV:8會將r8分配給r8。

回答

1

擴大對@Ben RESER的建議,使用svn log --diff

如果給定的R911文件,以及R900和R901(之間最後一次更改文件@ R911是一樣的文件@ R901和文件@ 901比文件@ R900不同)

svn log filename --diff -r911:0 --l 1 將返回R901之間的差異:900,這在本質上是一樣的DIFF R911:900

0

要回到比您當前使用PREV更進一步,您需要知道修訂號碼本身。

請注意,PREV只適用於當你第一次引用工作副本(因此,如果該WC不完全是最新的,PREV可能不是你認爲它應該是),所以你'如果您使用的是存儲庫URL,則必須知道修訂號

2

你正在推翻這一點。在您的示例中,文件在r1,2,3,8和9中發生更改。您無需指定svn diff -r 3:8 file.ext即可獲取版本8中所做的更改,您可以使用svn diff -r 7:8 file.ext來完成此操作。由於該文件在修訂版本7中未更改,因此它與3中的文件相同。爲了更容易,Subversion提供了-c標誌,它會爲您執行相減。因此,在你的榜樣,你可以只使用svn diff -c 8 file.ext

+0

遺憾。我的例子並不清楚,說我拉-rPREV:HEAD,我提供了一個diff和修改信息,我正在比較r10和r8。基於這些信息,我想將r8與之前的(r7)區分開來,當然,我可以做-r7:8。但是如果我想再退一步,我會做r?:7我正在尋找的是-r?:7 ...鑑於任何版本N和以前(和不同)版本M,我正在尋找會自動執行-rM:N,而不會查看日誌 – Pete

+1

如果您只是想查看文件的歷史記錄,只需運行登錄文件即可。如果您想查看歷史記錄的差異,請使用--diff選項。 diff命令的存在是爲了向你顯示修改之間的變化。日誌存在以顯示更改時間。 –

+0

啊,我不知道日誌選項--diff。結合-rM:0 -l 1,這正是我正在尋找的。 – Pete