我一直在使用 TortoiseSVN、svn 和 subclipse,我想我了解基础知识,但有件事一直困扰着我:合并引入了不需要的代码。这是步骤。trunk/test.txt@r2
.使用“A”和返回创建了一个测试文件:
A
[EOF]
branches/TRY-XX-Foo/test.txt@r3
.分支出trunk
至 TRY-XX-Foo
:A
[EOF]
branches/TRY-XX-Foo/test.txt@r4
.在 TRY-XX-Foo
中进行了不必要的更改并 promise :A
B (unwanted change)
[EOF]
branches/TRY-XX-Foo/test.txt@r5
.在 TRY-XX-Foo
中做了一个重要的错误修复并 promise :A
B (unwanted change)
C (important bug fix)
[EOF]
现在,我只想将重要的错误修复合并回主干。所以,我运行合并修订版
4:5
.我最终在我的工作目录中是一个冲突。trunk/test.txt
:A
<<<<<<< .working
=======
B (unwanted change)
C (important bug fix)
>>>>>>> .merge-right.r5
[EOF]
违背我的意愿,Subversion 现在在主干代码中包含了“不需要的更改”,我需要手动清除它们。在分支中进行多个连续更改时,是否可以仅合并指定的修订?
问题的一部分是 B(未经处理的更改)包含在 .merge-right 中,我无法区分它来自哪个修订版。我通常使用 TortoiseMerge,这是它的外观。
最佳答案
仅将修订版 4,7 和 11-15 与 svnmerge 合并:
svnmerge.py merge -r4,7,11-15
并使用常规 svn:
svn merge -c4,7 -r10:15 http://.../branches/TRY-XX-Foo
关于svn - 颠覆 : How to merge only specific revisions into trunk when multiple consecutive changes are made in a branch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326937/