我需要生成补丁文件恢复/撤消给定SVN提交的效果(最后一个不必要)。即如果某个字段已添加到类中,则修补程序需要删除此字段等。
有没有自动生成此路径的方法?或者我需要手动准备它?
答案 0 :(得分:1)
可能你需要像
那样的smthsvn diff -r 123:124 > your.patch
其中124是您要还原的修订版。
答案 1 :(得分:0)
这篇文章帮助了我:http://blog.johang.se/2009/03/revert-commit-in-subversion.html。
或者,我可以在Tortoise SVN日志中使用“Revert commit”选项(可能也是如此)。
然而,如果在工作副本中恢复提交,我可以轻松地从本地更改生成补丁,这将完全符合我的需要。
答案 2 :(得分:0)
像svn diff -r 124:123
这样的调用会将补丁文件转储到stdout,如果应用,它会将修订版124
中记录的文件状态转换为修订版{{}中记录的状态。 1}} - 反转传递给123
-r
命令行参数的修订版生成一个“反向”补丁。
另请注意,传统的svn diff
程序和patch
命令都可以在被告知时反向应用“正常”(“直接”)补丁 - 它们会反转给定的补丁自己。
答案 3 :(得分:0)
阅读svn help diff
,请注意第二种形式的差异,-c -M
选项
比较两个样本差异输出
直接差异
>svn diff -c 1264 ...
Index: Yarnet.ini
===================================================================
--- Yarnet.ini (revision 1263)
+++ Yarnet.ini (revision 1264)
@@ -8,5 +8,8 @@
Image=Yarnet.bmp
City=╨п╤А╨╛╤Б╨╗╨░╨▓╨╗╤М
+5.159.112.0-5.159.119.255
+37.1.80.0-37.1.87.255
46.229.176.0-46.229.191.255
+185.10.128.0-185.10.131.255
212.232.32.0-212.232.63.255
\ No newline at end of file
反向差异
>svn diff -c -1264 ...
Index: Yarnet.ini
===================================================================
--- Yarnet.ini (revision 1264)
+++ Yarnet.ini (revision 1263)
@@ -8,8 +8,5 @@
Image=Yarnet.bmp
City=╨п╤А╨╛╤Б╨╗╨░╨▓╨╗╤М
-5.159.112.0-5.159.119.255
-37.1.80.0-37.1.87.255
46.229.176.0-46.229.191.255
-185.10.128.0-185.10.131.255
212.232.32.0-212.232.63.255
\ No newline at end of file
简答
用于撤消修订版M的差异是
svn diff -c -M