首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当使用svn cp或svn mv时,如何使svn diff生成应用补丁文件?

当使用svn cp或svn mv时,如何使svn diff生成应用补丁文件?
EN

Stack Overflow用户
提问于 2008-11-25 15:09:33
回答 4查看 65.2K关注 0票数 64

场景是:

  1. svn cp或mv某些文件
  2. 修改文件
  3. svn diff > mypatch

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

  1. 尝试应用mypatch.
  2. Fail

尝试修改不存在的文件。

在这种情况下,如何让svn diff生成可应用补丁程序,或者干净利落地应用svn diff生成的补丁程序?我不能承诺。我希望保留mergeinfo (因为明显的解决办法是将文件添加为全新的文件,而不连接到前一个文件)。

EN

回答 4

Stack Overflow用户

发布于 2008-11-26 05:41:33

使用subversion,您可以指定要使用的diff二进制文件,以及要传递给它的参数。参见svn diff上的the manual

您可能希望从svn diff生成一个常规的补丁文件,因此您可能希望svn diff看起来像一个普通的diff。试试这个:

代码语言:javascript
复制
svn diff --diff-cmd /usr/bin/diff -x "-i -b" > mypatch
...
patch -p0 < mypatch

概念验证:

代码语言:javascript
复制
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

打补丁后,两个文件没有差别。

票数 64
EN

Stack Overflow用户

发布于 2016-04-27 05:06:58

如果你想在你的补丁中去掉svn属性,有一个选项可以做到:

代码语言:javascript
复制
svn diff --patch-compatible > mypatch.diff

svn help diff说:

代码语言:javascript
复制
  --patch-compatible   : generate diff suitable for generic third-party
                         patch tools; currently the same as
                         --show-copies-as-adds --ignore-properties

以这种方式创建的补丁应该与传统的普通patch实用程序兼容。

票数 11
EN

Stack Overflow用户

发布于 2013-03-21 04:17:54

您有没有尝试过网页上提到的和页面上描述的--show-copies-as-adds选项?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/317649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档