svn diff修订范围的顺序

Vin*_*t W 3 svn diff

我正在尝试使用以下命令在svn存储库中编写已更改/添加的文件列表,以便与phing一起使用.

svn diff --no-diff-deleted --summarize -r 50:HEAD path/to/workingcopy
Run Code Online (Sandbox Code Playgroud)

当我反转修订范围(-r开关​​)时,如下所示:

svn diff --no-diff-deleted --summarize -r HEAD:50 path/to/workingcopy
Run Code Online (Sandbox Code Playgroud)

..我得到了不同的结果.虽然它的行为是我需要的,但我不理解它(也许我错过了一些东西).例:

假设头版本有一个带有一些文件的新目录:第二个命令只列出新目录,而第一个命令也会列出其中的所有新文件.至少,这是我认为经过一些测试后的确如此.

我找不到关于这件事的任何明确的文件.有人可以解释修订范围的顺序意味着什么吗?谢谢!

rme*_*dor 6

在第一种情况下,您将获得版本50和Head之间的所有更改.这是你自然期望的,所以我不会进一步解释.然而,相反的范围更有趣.这是您需要应用于Head以获得修订版50的差异.简而言之,它指定了如何撤消所做的所有更改.你说"第二个命令只列出新目录",这是正确的:它告诉你删除目录,这将自然删除其内容.