我已经使用TortoiseSVN、svn和subclipse,我认为我理解了基础知识,但有一件事情一直困扰着我:合并会引入不必要的代码。以下是步骤。 。创建了一个测试文件,并添加了“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
中做了一个不想要的更改并提交:
A
B (unwanted change)
[EOF]
branches/TRY-XX-Foo/test.txt@r5
。在TRY-XX-Foo
分支中进行了重要的错误修复,并将其提交:
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,以下是它的外观。