2014-01-22 44 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