如何退回修订版

时间:2014-01-22 19:48:24

标签: svn

是否有一种简单的方法可以将给定修订与上次修改进行比较?我正在查找或类似于svn diff file.ext -PREV:HEAD的快捷方式,但相对于给定的修订号而不是HEAD的prev。

例如:

假设我在r10上有一个存储库,并且已经在r1,2,3,8,9中修改了文件。svn diff -rPREV:HEAD会给我一个r8:10的差异,这与r8相同:9。但是如果我想要一个8的差异与之前的状态(r3)有什么方法可以在不查看其日志的情况下进行区分,看看它何时被更改并明确指定r3? -rPREV:8将r8变为r8。

3 个答案:

答案 0 :(得分: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

即可

答案 1 :(得分: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

基本相同

答案 2 :(得分:0)

要回到目前使用PREV的情况,您需要知道修订号本身。

请注意,PREV仅在您首先引用工作副本时才有效(因此,如果该WC未完全更新,PREV可能不是您认为的那样应该是),所以如果你正在使用存储库URL,你将不得不知道修订号