该方案是:
- SVN CP或MV某些文件
- 修改该文件
- SVN DIFF> mypatch
在另一台机器(同一个工作拷贝,但没有改变):
- 尝试运用mypatch。
- 失败 - >试图修改unexistant文件。
我怎样才能让SVN差异产生的补丁,补丁appliable,或干净的应用svn DIFF在这种情况下产生的补丁? 我不能犯。 我想保持合并信息(因为显而易见的解决方法是将文件添加为全新的,无需连接到前一个)。
该方案是:
在另一台机器(同一个工作拷贝,但没有改变):
我怎样才能让SVN差异产生的补丁,补丁appliable,或干净的应用svn DIFF在这种情况下产生的补丁? 我不能犯。 我想保持合并信息(因为显而易见的解决方法是将文件添加为全新的,无需连接到前一个)。
颠覆,你可以指定要使用的DIFF二进制和参数传递给它。 请参见本手册上的svn差异。
你想生产从SVN差异常规补丁文件,所以你会希望使用svn 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
修补后的两个文件没有区别。
如果你想摆脱svn的特性,以及在你的补丁中,有针对的选择:
svn diff --patch-compatible > mypatch.diff
svn help diff
说:
--patch-compatible : generate diff suitable for generic third-party
patch tools; currently the same as
--show-copies-as-adds --ignore-properties
这种方式创建补丁应该是与良好的老平原兼容patch
程序。
您是否尝试过--show-copies-as-adds
上提到的选项SVN DIFF网页和上描述SVN选项页面?
如果不了解具体情况你想在它的努力合作,以确定为什么你要做到这一点。 我明白你试图在一个孤立的环境控制的变化,从而避免影响其他用户/应用程序的感觉。
你能解决这个问题;
当你既与改变约定合并到使用--reintegrate参数干线和RM分支?
这将*保持合并,信息*确定在版本控制的复制/移动和变化*还有隔离来自其他用户的变化*会第2步中防止不完全的变化是,你只需要添加更多的变化和更新的问题