Как избежать конфликтов деревьев при слиянии веток, которые были перемещены? - PullRequest
1 голос
/ 25 октября 2010

У меня есть хранилище, которое выглядит так:

/a/trunk/Library
/a/branches/FeatureX/Library
/b/trunk/Application
/b/branches/FeatureX/Application

Я хочу изменить это так, чтобы папки «Приложение» и «Библиотека» располагались рядом друг с другом:

/a/trunk/Library
/a/trunk/Application
/a/branches/FeatureX/Library
/a/branches/FeatureX/Application

Я попытался добиться этого, просто скопировав svn в папки «Приложение». Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь объединить «FeatureX» с «транком» позже, я получаю конфликт дерева, потому что «Приложение» было добавлено как в транке, так и в ветви.

Есть ли лучший способ сделать это?

(Кстати, я не могу объединить «FeatureX» до копирования «Приложения», это всего лишь тест, чтобы увидеть, будет ли это возможно позже ...)

Ответы [ 3 ]

0 голосов
/ 01 ноября 2010

ВАРИАНТ 3: На основании вашего комментария к предыдущему ответу, попробуйте это.Сделайте SVN копию / b / trunk / Application в / trunk / Application.Выполните слияние дерева / a / trunk с ревизией, которую вы создали / a / branch / FeatureX, с последней (более чем вероятной HEAD) / a / trunk, содержащей каталог приложения, и примените это к вашей рабочей копии / a/ филиалы / FeatureX.Зафиксируйте эти изменения.Теперь выполните еще одно дельта-слияние / b / branch / FeatureX / Application с / a / Branchs / FeatureX / Application с вашей рабочей копией / a / Branchs / FeatureX / Application.Зафиксируйте эти изменения в хранилище.У вас должны быть все изменения в / a / trunk, которые были в / b / trunk, и все изменения в / b / branch / FeatureX в / a / branch / FeatureX и готовые для объединения обратно в / a / trunkкогда ты готов.Однако вы потеряете прямую историю всех коммитов из / b / branch / FeatureX / Application в / a / Branchs / FeatureX / Application.Вы все еще можете просмотреть историю из / b / branch в / a / branch с параметром -g с помощью команды svn log.

0 голосов
/ 05 июля 2016

Делайте ваши svn-копии в транк только из «Приложения».Создайте новую ветку из ствола: featurex2.Слияние Featurex с FeatureX2.Удалите featurex его привлекательную неприятность сейчас.

0 голосов
/ 26 октября 2010

ВАРИАНТ 1: Объединить изменения из транка (aka / b / trunk / Application) в ваш / a / branch / FeatureX.Это должно дать вам «оригинальную» папку приложения в ветке FeatureX.Затем выполните дельта-слияние, взяв / b / trunk / Application и / b / branch / FeatureX / Application, и объедините эти изменения с рабочей копией / a / branch / FeatureX / Application.Это должно позволить вам затем аккуратно объединить / a / Branchs / FeatureX с /a/trunk.

ВАРИАНТ 2: Не копировать / b / trunk / Application в / a / trunk.Скорее svn copy / b / branch / FeatureX / Приложение к / a / branch / FeatureX.Затем объедините эти изменения в / a / trunk, когда будете готовы.Если в / b / trunk / Application есть изменения, которых нет в / b / branch / FeatureX / Application, вам нужно будет заново создать эту ветку, прежде чем выполнять svn-копирование в /a/branches/FeatureX.*1003.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...