SVN从提交的代码创建补丁吗?


71

是否可以为提交后提交期间受影响的所有文件创建补丁(差异文件)?这些文件的版本号相同,我需要每个文件与先前版本的区别。

Answers:


63

如果您知道提交编号,请使用

svn diff -c N path

N提交编号path是哪里,是工作副本的路径。


2
我做到了svn help diff,它告诉我svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]哪些还可以比较两个修订。
Lee Meador

1
如果在subversion配置中设置了diff-tool,则可能无法立即使用。您可能要添加--diff-cmd diff到此呼叫中。
cprn

另外,您需要指定一个(或多个)路径以仅包括所选文件。否则,您的补丁将包括整个变更集。
cprn

48

或者,使用Windows + tortoiseSVN时:转到源代码目录,右键单击目录(以打开tortoise上下文菜单),然后选择“显示日志”,选择两个修订版(按住ctrl键单击),然后右键单击并选择“从上下文菜单中将差异显示为统一差异”。将弹出一个窗口,显示差异,然后可以将其另存为补丁。

更新:按住Shift键,单击“将差异显示为统一差异”时,会弹出一个对话框,您可以在其中选择差异选项(忽略eol更改,忽略空白更改,忽略所有空白)。例如,如果换行符在版本之间发生了变化,则此功能很有用(否则整个文件将显示为“更改”)



1

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

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中引用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.