Windows 要在一组修订之间创建svn修补程序文件吗

Windows 要在一组修订之间创建svn修补程序文件吗,windows,svn,tortoisesvn,patch,Windows,Svn,Tortoisesvn,Patch,我想通过svn命令行或使用Tortoise为一组修订创建补丁文件。如果重要的话,我会赢7分 我不需要做任何区别,我可以做到。我有两个不同版本的软件。版本A中修复了一个bug,该bug涉及相当多的文件。我想把它移植到版本B。除了逐个文件之外,我看不到一种简单的方法 我可以单击这些文件,并将修订保存到,但它并不能像使用补丁文件那样真正保留文件夹结构 谢谢, Eric我个人会选择命令行svn diff。这里是下载链接,如果您还没有的话: 以下是svn diff的文档: 根据您上面的描述,它可能非常简单

我想通过svn命令行或使用Tortoise为一组修订创建补丁文件。如果重要的话,我会赢7分

我不需要做任何区别,我可以做到。我有两个不同版本的软件。版本A中修复了一个bug,该bug涉及相当多的文件。我想把它移植到版本B。除了逐个文件之外,我看不到一种简单的方法

我可以单击这些文件,并将修订保存到,但它并不能像使用补丁文件那样真正保留文件夹结构

谢谢,
Eric

我个人会选择命令行svn diff。这里是下载链接,如果您还没有的话:

以下是svn diff的文档:

根据您上面的描述,它可能非常简单:

svn diff --new="url of A" --old="url of B" > mypatch.patch
您可以使用tortoise进行尝试,但首先需要GnuWin提供的unix工具集的Windows端口


这将为您提供一个可以创建修补程序文件的diff util。TortoiseSVN允许您设置一个外部差异程序,但我不确定这是否顺利,因为我只使用过tortoise作为一种方便(任何繁重的工作,我都会回到CLI)。此处有关于此的文档:。您还可以将外部差异与svn一起使用。这方面的文档如下:。

埃里克的建议可能会奏效。我能够利用朱博的建议完成我需要的工作

我有13个变更集,其中一些未将以前的部分或全部变更集解压为多个文件,我希望将这些文件从代码的版本A移植到版本B。我通过在Tortoise中的Message字段中搜索缺陷id生成了一个修订列表。然后,我去了每一个相关的修订在乌龟,右键点击他们,并做了一个“显示变化为统一的差异”。这基本上创造了Jubob所说的差异。在每个差异上,我都进行了另存为,并将每个修订保存为revision1.patch、revision2.patch等

我开始使用Ortoise一次一个地应用每个补丁文件,但这变得很乏味。因此,我编写了一个批处理文件,依次运行每个批处理文件。批处理文件中的命令如下所示:

patch -p0 -i  "C:\mypatchfilelocation\revision1.patch"
哦,还有一件事。在每个补丁文件中,我必须更改路径以匹配版本B的路径。所以我不得不从c:/versionA/换成c:/versionB/


-Eric

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

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


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

补丁文件(至少是该术语的常规公认用法)是差异的结果。执行差异,将输出转储到文件中。那是你的补丁文件。然后使用
patch
或其他机制将该补丁(diff)应用于另一组文件。您的问题是否与Git相关?我不明白在这种情况下为什么需要GnuWin。+1@bahrep。OrtoiseSVN与本机Win32二进制文件捆绑在一起,没有理由通过引入GnuWin32来潜在地搅乱局面。