Я использую TortoiseSVN, svn и subclipse, и я думаю, что я понимаю основы, но там одна вещь, которая меня раздражала какое-то время: Слияние вводит нежелательный код. Здесь шаги.
trunk/[email protected]
. Тестовый файл был создан с помощью "A" и возврата:
A
[EOF]
branches/TRY-XX-Foo/[email protected]
. Разветвьте trunk
на TRY-XX-Foo
:
A
[EOF]
branches/TRY-XX-Foo/[email protected]
. Сделал нежелательное изменение в TRY-XX-Foo
и совершил его:
A
B (unwanted change)
[EOF]
branches/TRY-XX-Foo/[email protected]
. Сделал важное исправление ошибки в TRY-XX-Foo
и зафиксировал его:
A
B (unwanted change)
C (important bug fix)
[EOF]
Теперь я хотел бы объединить только важное исправление ошибок в trunk. Итак, я запускаю слияние для ревизии 4:5
. То, что я в конечном итоге в моем рабочем каталоге, является конфликтом.
trunk/test.txt
:
A
<<<<<<< .working
=======
B (unwanted change)
C (important bug fix)
>>>>>>> .merge-right.r5
[EOF]
В отличие от моей воли, Subversion теперь включила "нежелательные изменения" в код соединительной линии, и мне нужно отменить их вручную. Есть ли способ объединить только указанные изменения, когда в ветке сделаны несколько последовательных изменений?
Часть проблемы состоит в том, что B (неосновное изменение) входит в .merge-right, и я не могу сказать разницу между тем, из какой версии он пришел. Обычно я использую TortoiseMerge, и вот как это выглядит.