颠覆差异,包括新文件(subversion diff including new files)

2019-08-22 15:46发布

我有一些局部变化到使用Subversion作为它的源代码控制的一个开源项目。 (我没有承诺对原有项目库的访问。)

我的变化增加了一个文件,但该文件不包含在“SVN DIFF”的输出。 (这可能是值得一提的是,新的文件是二进制,而不是纯文本。)

我怎样才能让一个补丁 ,其中包括新的文件?


 $ svn st
   A      tests/foo.zip
 $ svn diff
 $

Answer 1:

您是二进制文件事实上也正是它为什么不显示我害怕。 Subversion的diff命令只做文字的diff /补丁(虽然Subversion内部使用可以有效地处理版本之间的二进制文件差异)。



Answer 2:

我经历过类似的行为Pozsar。 他的回答为我工作比正常的svn差异--force更好。 但是,如果一个DOS机(例如,通过Cygwin)上运行,则可能需要稍微修改他的回答。 下面的差异+补丁工作了使用--binary ARG修补我的文字+二进制文件在Cygwin中:

svn diff --force --diff-cmd /usr/bin/diff -x "-au --binary" OLD-URL NEW-URL > mybinarydiff.diff

patch -p0 --binary -i mybinarydiff.diff


Answer 3:

有一个--force选项,diff命令,但它产生了不正确的补丁文件我的机器上的二进制文件。 与--diff-CMD选择使用它,但对我的作品:

svn diff --force --diff-cmd /usr/bin/diff -x -au

我认为这会产生你想要的到底是什么。



Answer 4:

如果你正在构建一个补丁,你可能需要使用普通的老“差异”用它把丢失的文件为空--new-file选项。

请注意,此选项的语法实际上可能取决于你使用的是什么版本的老式差异的。



文章来源: subversion diff including new files
标签: svn patch