我在Windows 7平台(全部64位)上使用版本1.8.10的subversion命令行工具和版本1.8.8.25755的TortoiseSVN。
我公司的代码在每个版本的不同分支中维护。 2月发布的代码将在branch1中; 4月发布的代码将在branch2中。在2月发布之后,我想将branch2中的代码与branch1中的代码进行比较,以确保两者之间没有任何更改丢失,并创建一个补丁文件,该文件将branch2修改为与branch1具有相同的内容。
我可以使用SVN命令行工具创建补丁文件:
svn diff --old=branch1 --new=branch2 > differences.diff
当我尝试应用补丁文件时,问题浮出水面。使用非常基本的命令来应用补丁:
svn patch differences.diff c:\temp\branch1
导致branch1没有变化。
svn patch --help
表示我应该看到在屏幕上生成的输出行,指示是应用还是拒绝更改;我看到绝对没有输出。 --help
还表示补丁文件应该有一行代表可以干净地应用补丁的分支的修订版,并给出该行的格式。我的补丁文件不包含与所述格式匹配的行。
(我也尝试使用TortoiseSVN来修补补丁,但Tortoise似乎有点特别之处在于它只会应用Tortoise生成的补丁。)
我的问题是,应用我看不到的补丁文件是否有一些魔力?或者,我的命令是否正确生成补丁文件?或者,我正在努力完成(将WC2修补为WC1)根本不受支持?
TIA,您可以提供任何帮助/指导。
答案 0 :(得分:0)
您的diff格式假设在diffing时刻为PWD,作为branch1和branch2 dirs的直接共同父级(显然在WC中)
任何其他PWD都会产生无效(或更可能是空的)差异
更多防弹样式的差异是svn diff /URL/OF/BRANCH1 /URL/OF/BRANCH2 ...