文件标记为“使用提交安排的历史记录”时的svn diff

时间:2010-02-01 16:43:51

标签: svn merge

我已经在我的工作目录中合并到trunk的分支上进行了更改。 Svn stat显示已更改文件的正确列表。但是,“svn stat”输出在历史记录中包含一个“+”,用于对分支添加的每个文件进行提交。

  

A + src \ main \ java \ com .... java

当我运行“svn diff”时,添加的“+”文件不包含在补丁输出中。

这似乎破了。如果文件被标记为已添加,那么它的全部内容应该在diff输出中。我试过传递--notice-ancestry。差异输出没有变化。我能找到的最接近同一问题的是关于复制/移动文件的these comments

有人知道如何让SVN在diff输出中包含这些文件吗?

我刚刚尝试了这个questions答案所建议的外部差异程序,但它对我不起作用。

3 个答案:

答案 0 :(得分:17)

发布1.7版时,svn diff将为此目的设置--show-copies-as-adds开关。这表明1.6版本没有这种能力。

答案 1 :(得分:12)

svn status输出中的+字符表示该文件具有“使用提交安排的历史记录”。这意味着该文件实际上不是新文件,但实际上是Subversion存储库中某些其他文件的直接后代。

这意味着应该在svn diff中没有输出,因为文件实际上没有改变。如果要对文件进行一些本地修改,它们将出现在svn diff输出中。

答案 2 :(得分:0)

如果你“svn mv fileA fileB”。 fileB附近会有+符号。 我认为+符号表示实际文件内容尚未更改,因此它不会显示在svn diff中。在这种情况下,只是文件名已更改。