我有两个用SVN检出的文件,版本相同(2728)。
$ svn update build.xml At revision 2728. $ svn update ../../java-skel/trunk/build.xml At revision 2728.
当我试图找出差异时,“svn diff”没有显示任何差异。
$ svn diff build.xml ../../java-skel/trunk/build.xml
但是存在差异。
$ diff build.xml ../../java-skel/trunk/build.xml 67c67 < <format property="build.timestamp" pattern="yyyy-MM-dd HH:mm:ss Z"/> --- > <format property="now" pattern="yyyyMMdd'T'HHmmss,SSSZ"/> 86a87 > <exclude name="**/.ignore/**"/> 98c99 < <attribute name="Build-Date" value="${build.timestamp}"/> --- > <attribute name="Build-Date" value="${now}"/> 110a112 > <exclude name="**/.ignore/**"/>
为什么SVN没有显示差异?
答案 0 :(得分:3)
您的svn diff
命令没有比较这两个文件,它要求Subversion为您提供两个文件中的每个文件的更改,并且由于您上次修订后都没有更改,因此该命令不会给出任何文件输出
如果您运行svn help diff
,那么您将看到使用该命令的六种不同方式。你正在使用#2,diff [-c M | -r N[:M]] [TARGET[@REV]...]
有多个目标。看起来你正在考虑使用#4,#5或#6,它可以将服务器上的任意文件与磁盘上或服务器上的文件进行比较,但是它赢了“ t比较磁盘上的两个文件 - 这就是常规diff
命令的用途。
您可以明确使用svn diff
和--old
参数来强制--new
比较本地文件:
svn diff --old=build.xml --new=../../java-skel/trunk/build.xml