繁体   English   中英

想要在一组修订版本之间制作一个SVN补丁文件

[英]Want to make an svn patch file between a set of revisions

我想通过svn命令行或使用Tortoise为一组修订创建补丁文件。 如果有问题,我将使用Win 7。

我不需要做比较。 我可以的 我有一些软件的两个不同版本。 版本A中修复了一个错误,该错误涉及大量文件。 我想将其移植到版本B。除了逐个文件之外,我没有看到一种简便的方法。

我可以单击文件,然后对文件进行保存修订,但是它并没有像保存补丁文件那样真正保留文件夹结构。

谢谢,埃里克

我个人将使用命令行svn diff。 如果您还没有下载链接,请点击这里: http : //subversion.apache.org/packages.html#windows

这是svn diff的文档: http : //svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html

根据上面的描述,它可能很简单:

svn diff --new="url of A" --old="url of B" > mypatch.patch

您可以尝试使用乌龟,但首先需要GnuWin的UNIX工具集的Windows端口。 http://sourceforge.net/projects/gnuwin32/

这将为您提供一个可以创建补丁文件的diff util。 TortoiseSVN允许您设置一个外部diff程序,但是我不确定这样做的效果如何,因为我以前只是为了方便起见使用过陆龟(任何繁重的工作,我都回到了CLI上)。 此处的文档: http : //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-diff.html 您也可以将外部差异与svn一起使用。 此处的文档: http : //svnbook.red-bean.com/en/1.7/svn.advanced.externaldifftools.html

埃里克的建议可能会奏效。 使用Jubob的建议,我能够完成所需的工作。

我有13个变更集,其中有些变更集不完整或以前的变更集全部集中到多个文件,这些文件我想从代码的版本A移植到版本B。 我通过在Tortoise的“消息”字段中搜索缺陷ID来生成修订列表。 然后,我转到Tortoise中的每个相关修订版,右键单击它们,然后执行“将更改显示为统一差异”。 这基本上产生了Jubob所谈论的差异。 在每个差异上,我执行了一个另存为并将每个修订版本另存为version1.patch,revision2.patch等。

我开始使用Tortoise一次应用每个补丁文件,但这很麻烦。 因此,我编写了一个批处理文件,该文件逐个运行。 批处理文件中的命令如下所示:

patch -p0 -i  "C:\mypatchfilelocation\revision1.patch"

还有件事儿。 在每个补丁文件中,我必须更改路径以匹配版本B的路径。 所以我不得不从例如c:/ versionA /更改为c:/ versionB /

-埃里克

打开资源库浏览器。 浏览到旧版本。 右键单击该标记/分支文件夹,选择“比较标记”。 您将看到存储库浏览器现在以粗体显示该目录。

然后浏览到新版本,右键单击该标记/分支文件夹,选择“将差异显示为统一的差异”,您将获得一个补丁文件。

或者,您可以右键单击并选择“比较URL”,然后在以下对话框中选择所有更改的文件,右键单击并选择“将选择的文件导出到...”或“将所选文件的列表保存到...”。 “导出”保留文件夹结构,“保存...”将所有文件保存到同一文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM