在修订版之间创建"补丁"?

Jos*_* M. 23 svn diff tortoisesvn patch

似乎SVN的"补丁"功能并不完全是我想要的.我真正想要的是在修订版之间创建文件差异.因此,我选择rev1和rev 2,最后得到一个文件夹,其中包含在这些修订版本之间更改或添加的所有文件.

这可以用Tortoise SVN或普通的svn完成吗?

bat*_*lix 29

从命令行,您可以执行以下操作.

文件夹中的所有文件

在您的主文件夹中创建一个补丁,其中包含文件夹"my_project"中所有已更改文件的修订版123和124之间的所有更改:

svn diff -r123:124 path/to/my_project > ~/my_project_changes_123_124.patch
Run Code Online (Sandbox Code Playgroud)

一个特定的文件

在Home文件夹中创建一个补丁,其中包含仅来自一个文件的修订版123和124之间的所有更改,名称为"my_project.php":

svn diff -r123:124 path/to/my_project/my_project.php > ~/my_project_changes_123_124.patch
Run Code Online (Sandbox Code Playgroud)


Dip*_*u H 26

这可以在陆龟SVN本身中实现.右键单击要创建补丁的分支(文件夹)>> Show Log>>选择需要创建补丁的所有修订>>右键单击并选择Compare revisions>>这将显示已更改的文件>>全选文件>>右键单击并选择Export Revision To>>在您的机器中提供任何路径>>文件将在相应的文件夹结构中导出.

或者,您可以通过脚本实现此目的.请参阅以下链接:

http://www.electrictoolbox.com/subversion-export-changed-files-cli

  • 或者代替"Export Revision To",您可以选择"将差异显示为统一差异"来创建补丁文件. (6认同)