是否有一种简单的方法可以将给定修订与上次修改进行比较?我正在查找或类似于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。
答案 0 :(得分:2)
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,你将不得不知道修订号 。