我一直在使用TortoiseSVN,svn和subclipse,我认为我理解基础知识,但有一件事一直困扰着我:合并引入了不需要的代码.这是步骤.
trunk/test.txt@r2.使用"A"和返回创建了一个测试文件:
A
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r3.分支trunk到TRY-XX-Foo:
A
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r4.做出了不必要的改变TRY-XX-Foo并承诺:
A
B (unwanted change)
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r5.做了一个重要的错误修复TRY-XX-Foo并承诺:
A
B (unwanted change)
C (important bug fix)
[EOF]
Run Code Online (Sandbox Code Playgroud)
现在,我想只将重要的bug修复合并到trunk.所以,我运行merge进行修订4:5.我在工作目录中的最终结果是冲突.
trunk/test.txt:
A
<<<<<<< .working
=======
B (unwanted change)
C (important bug fix)
>>>>>>> .merge-right.r5
[EOF]
Run Code Online (Sandbox Code Playgroud)
违背我的意愿,Subversion现在已将"不需要的更改"包含在中继代码中,我需要手动清除它们.当在分支中进行多个连续更改时,是否有一种方法只合并指定的修订版本?
问题的一部分是B(unwated change)包含在.merge-right中,我无法区分它来自哪个版本.我通常使用TortoiseMerge,这是它的外观.
