场景是:
- svn cp 或 mv 某些文件
- 修改该文件
- svn diff > 我的补丁
在其他机器上(相同的工作副本,但没有更改):
- 尝试应用我的补丁。
- 失败 -> 尝试修改不存在的文件。
在这种情况下,如何使 svn diff 生成适用于补丁的补丁,或者干净地应用 svn diff 生成的补丁?我无法承诺。我想保留合并信息(因为明显的解决方法是将文件添加为全新的文件,而不连接到前一个文件)。
使用 subversion,您可以指定要使用的 diff 二进制文件以及要传递给它的参数。看手册 http://svnbook.red-bean.com/en/1.1/re09.html关于 svn 差异。
您希望从 svn diff 生成常规补丁文件,因此您希望 svn diff 看起来像普通 diff。尝试这个:
svn diff --diff-cmd /usr/bin/diff -x "-i -b" > mypatch
...
patch -p0 < mypatch
概念证明:
echo "newline" >> README.txt
svn diff --diff-cmd /usr/bin/diff -x "-i -b" > mypatch
cp README.txt README.txt.patched
svn revert README.txt
patch -p0 < mypatch
diff README.txt README.txt.patched
打补丁后两个文件没有区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)