SVN 根据提交的代码创建补丁?

是否有可能为在提交之后的提交过程中受到影响的所有文件创建一个补丁(diff 文件) ?这些文件将有相同的版本号,我需要从他们的先前版本的每个文件的差异。

45417 次浏览

如果您知道提交号,那么使用

svn diff -c N path

其中 N是提交号,path是工作副本的路径。

如果你知道修订号码(例如123和124) ,你可以使用:

svn diff -r123:124 path/to/my_project_folder > ~/my_project_changes_123_124.patch

参见 https://stackoverflow.com/a/25283101/1127583

另外,当使用 windows + tortoiseSVN 时: 进入你的源代码目录,右键点击目录(打开 tortoiseSVN 菜单)并选择“显示日志”,选择两个修订版本(ctrl-click) ,然后右键点击并从上下文菜单中选择“显示差异作为统一的差异”。 将弹出一个窗口显示差异,然后您可以将其保存为补丁。

更新: 按住 Shift 键,当点击“将差异显示为统一差异”时会弹出一个对话框,你可以在其中选择差异选项(忽略 eol 更改,忽略空格更改,忽略所有空格)。如果行结尾在不同版本之间发生了变化(否则整个文件将显示为‘ changed’) ,那么这种方法非常有用

虽然已经回答了简单的版本如下,

1, Source Code Location > Tortoize SVN > show log
2, Select the revision which has your commit
3, Right Click > select > Show changes as unified diff
4, Pop up with differences of all files in that commit come
5, Copy the entire content and create a new file with the extension of .patch

我从下面的链接参考 https://groups.google.com/forum/#!topic/tortoisesvn/xV-hemaFdFU