我用
svn diff -r $new:$old $file --summarize
找出$ file和$ old之间的$文件是否有变化。但是如果我一遍又一遍地添加和删除文件。比如
添加$ file revision 230
删除$ file revision 231
添加$ file revision 232
虽然在230和232添加的$文件是相同的路径和相同的名称但内容不同,然后调用
svn diff -r $230:$232 $file --summarize
svn显示没有任何变化,而我期望一个结果告诉我$ file被修改。
如何解决此问题?
答案 0 :(得分:1)
首先, - summarize选项有一个特定的用途,主要用于比较文件树。它只是显示具有差异的文件列表,而不是每个文件的详细差异。用于单个文件时没有任何价值。
其次,diff总是简单地比较文件或树的两个快照。它并不关心文件如何进入它所处的状态,只是它在快照中的样子。因此,例如,如果您删除一个版本中的代码块,请在下一个版本中将其添加回来,然后在第三个版本中更改一行。然后在所有这些之前使用代码执行当前版本的差异,它只会显示一行代码更改。它没有考虑两者之间发生的任何变化。
如果您希望查看修订范围内的所有更改,则需要使用svn log。
答案 1 :(得分:0)
虽然您要添加具有相同名称的文件,但SVN会在内部将其视为两个实体。因此,您的命令正在尝试在版本231和232之间找到文件的修订版本,其中在版本231处,当前文件甚至不存在于SVN中。在这种情况下,您必须在父文件夹上执行svn diff
而不是文件。