Здесь сценарий:
- User1, Branch1: добавляет "abc.def" ; фиксаций.
- User2, Branch2: добавляет "abc.def" (то же имя файла, но более подробно в файл); фиксаций.
Теперь User1 хочет объединить обновленную версию файла "abc.def" . Итак, используя TortoiseSVN 1.7.10, User1 запускается в рабочей копии Branch1, выбирает Merge...
→ Reintegrate a Branch
, затем выбирает Branch2 и выбирает Merge
. Как и ожидалось, результат "Дерево конфликтов", с этим текстом:
Последняя операция слияния попыталась добавить файл 'abc.def' из Branch2, но файл уже был добавлен локально. Как вы хотите разрешить этот конфликт?
Но единственным выбором является единственная кнопка с меткой Keep the local file
. Невозможно выбрать удаленный файл, который действительно нужен User1.
Что я делаю неправильно здесь и как его исправить? Более конкретно, как мне получить версию файла User2 в Branch1?
(Конечно, я уверен, что User1 может вручную удалить файл до слияния, но это уничтожает любую историю, которую UserI может пожелать сохранить. Кроме того, это просто неуклюжий рабочий процесс, особенно когда в этом затруднительном положении есть многочисленные файлы.)
К сожалению, этот сценарий даже не упоминается в документации TortoiseSVN о конфликтах дерева
ОБНОВЛЕНИЕ:
В дополнение к выбору "Reintegrate a Branch
" я также попробовал "Merge a Range of Revisions
" и "Merge two different trees
". В последнем случае я выбрал удаленную ветвь (Branch2) как "Старт", а локальную ветвь - как целевую (Branch1, выбирая Revision до добавления файла). Я получил тот же результат во всех случаях: Tree Конфликт без опции выбора версии файла User2.
ОБНОВЛЕНИЕ # 2:
В соответствии с документацией должен быть установлен флажок в диалоговом окне слияния с названием Merge non-interactive
", который, если он не установлен, предположительно открывает диалоговое окно" Диалог обратного вызова слиянием" во время слияния. Тем не менее, я не могу найти такой флажок в процессе слияния. Где это?