Почему я получаю конфликты при Слиянии ответвления с Соединительной линией и затем слиянии ее назад с ответвлением?

Позволяет говорят, что у меня есть ответвление функции, названное "branches/BigFeature". Я хочу продвинуть те изменения в Соединительной линии, внести некоторые изменения в Соединительную линию и объединить назад все это назад в ответвление "BigFeature", таким образом, разработка может продолжиться.

Мои шаги были к:

  1. Объедините последние изменения в Соединительной линии к branches/BigFeature. (Черепаха SVN-> Слияние диапазон изменений)

  2. Объедините изменения в branches/BigFeature для Транкинга. (Черепаха SVN-> Повторно интегрирует ответвление),

  3. Внесите некоторые изменения в Соединительную линию.

  4. Объедините изменения в Соединительной линии к branches/BigFeatures. (Черепаха SVN-> Слияние диапазон изменений)

Проблема возникает на шаге 4. Когда я объединяюсь назад с BigFeature, я получаю все виды конфликтов. Это, кажется, имеет проблему с файлами, которые были первоначально добавлены в branches/BigFeature, но были объединены с Соединительной линией.

Сообщение, которое это дает мне, является "Последней операцией слияния, которую попробовали для добавления файла 'вздор', но это было уже добавлено локально.

Это отчасти имеет смысл, потому что файл был первоначально добавлен в ответвлении branches/BigFeature и затем объединился с Соединительной линией. Но почему операция слияния не может понять это? Почему это подходит как конфликт?

Тот же вид ошибки происходит для удаленных файлов.

Последняя операция слияния пыталась удалить/переместить/переименовать каталог 'вздор', но это было удалено, перемещено или переименовано локально.

Спасибо за Вас справка.

6
задан Justin 7 June 2010 в 21:51
поделиться

1 ответ

К сожалению, это недостаток svn, то, как он построен.

Шаги в svn должны выглядеть так:

1. (not modified) Merge the latest changes in Trunk to branches/BigFeature. (Tortoise SVN -> Merge a range of revisions)
2. (not modified) Merge the changes in branches/BigFeature to Trunk. (Tortoise SVN -> Reintegrate a branch)

2a. Delete branch branches/BigFeature
2b. Create branch branches/BigFeature from current trunk

3. (not modified) Make some changes to Trunk.
4. (not modified) Merge the changes in Trunk to branches/BigFeatures. (Tortoise SVN -> Merge a range of revisions)

Ветка SVN больше не может использоваться после операции реинтеграции.

Обновление: есть второй способ, вместо удаления ветки.

2a. on branch: 
    $ svn update
    Updated to revision X
    $ svn merge --record-only -c X ^/trunk
    $ svn commit -m "Block revision X from being merged into the branch."

Я не знал этого трюка, я научился ему благодаря вашему вопросу :D

7
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: