svn - 当使用svn或者svn时,如何使svn产生补丁?

  显示原文与译文双语对照的内容
0 0

场景是:

  1. svn cp或者mv某些文件
  2. 修改该文件
  3. svn差异> mypatch

在其他机器( 相同的工作副本,但没有更改) 上:

  1. 尝试应用 mypatch 。
  2. 失败-> 试图修改unexistant文件。

如何让 svn diff产生patch-appliable补丁,或者干净地应用由 svn diff生成的补丁? 我无法提交。我想保留 mergeinfo ( 因为明显的解决办法是将文件添加为全新的,而不与前一个文件连接) 。

时间: 原作者:

0 0

使用 subversion,你可以指定要使用的差异二进制,以及传递给它的参数。 请参见上的手动

你希望从一个 svn diff生成一个常规补丁文件,所以你希望 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

修补后两个文件没有区别。

0 0

你有试过 --show-copies-as-adds 选项提到在 svn diff web页面和描述 svn选项页面?。

原作者:
0 0

不了解具体的情况你想工作在它很难确定你为什么想做这个。 我感觉你在试图在独立的环境中进行控制更改,从而避免影响其他用户/应用程序。

你能解决这个问题?

  • 为代码更改创建分支
  • 在分支上执行复制/移动和更改
  • 将另一方获取 switch 为此新代码分支进行共享

当你同意使用--reintegrate参数和分支将更改合并回主干时?

这将 * 保持 merge-info * 识别复制/移动和版本控制的变化 * 仍然从 * 将防止其他用户隔离变化不完全变化一步 2作为一个问题你可以添加更多的变化和更新

原作者:
...