Слияние ветки с стволом

Используя TortoiseSVN, мне нужно принять изменения, которые я сделал в ветке, а затем объединить их с транком.

Я единственный разработчик в этом проекте, поэтому я знаю, что ствол не изменился. Я изучаю SVN, чтобы в конечном итоге моя команда могла его использовать.

По сути, я хочу, чтобы мой ствол выглядел точно так же, как ветвь.

В мире, предшествующем svn, я просто копировал файлы в своей папке ветки, удалял файлы в папке ствола, а затем копировал ветку в ствол.

В TortoiseSVN я попытался Reintegrate a branch, Merge a range of revisions и Merge two different trees. Кажется, ничего не меняет багажник. Я также попытался разветвляться на верхней части ствола. Это дает мне ошибку, говоря, что ствол уже существует.

Ответ 1

В вашем случае:

  • Переключите рабочую копию на соединительную линию (SVN Switch)
  • Объединить ветвь в рабочую копию (SVN Merge)
  • Убедитесь, что все еще компилируется и работает
  • Зафиксировать рабочую копию (соединительную линию)
  • Рассмотрите возможность уничтожения ветки

В командной среде я бы предположил, что сначала вы слейте последние изменения из сундука в своем филиале, убедитесь, что все скомпилировано и работает, затем выполните описанные выше действия (что будет тривиально с вы уже протестировали изменения).


Обновление

На шаге 5 я упоминаю об убийстве ветки. Это потому, что, когда ветка от объекта находится в багажнике, его следует рассматривать как часть ствола. В этом случае ветвь должна быть убита, чтобы никто не работал над ней. Если для этой функции необходимы основные изменения, для этого вам нужно создать новую ветку.

Единственными ветвями, которые я не убиваю, являются ветки обслуживания и выпуска, если конкретная версия больше не поддерживается.

Независимо от того, у вас всегда есть доступ к каждой ревизии, поэтому уничтожение ветки используется только для предотвращения разработки другими разработчиками на мертвой ветке.

Ответ 2

Я думаю, что в TortoiseSVN 1.8.5, Merge | Слияние двух разных деревьев должно работать. Когда вы объединяете ветку/тег обратно в магистраль, трюк заключается в том, что URL-адрес From - это соединительная линия, а To - это тег/ветвь. Странно, но верно.

Источник: Объединение

Для каталогов, которые не находятся в вашей рабочей копии, но находятся в теге/ветки, могут возникнуть конфликты. Просто примите конфликт и повторите слияние.

Ответ 3

Сначала переключите рабочую копию на багажник. Затем сделайте диапазон слияния ревизий, от ветки до ствола. Как только это диалоговое окно будет завершено, различия будут в ожидании изменений в вашей рабочей копии туловища. Вам нужно будет зафиксировать их так же, как если бы вы вручную внесли изменения в свою рабочую копию.

В моем использовании, более типичным для того, чтобы поддерживать ствол и откручивать ветки во время сборки. Итак, единственное слияние, которое мне когда-либо нужно сделать, - это получить исправление ошибки из сундука и поместить его в последнюю ветвь сборки и переиздать эту ветку. Самый простой способ для меня сделать это, поскольку, как вы нашли, слияние в лучшем случае неудобно. Является ли последняя ветка и багажник проверена на моей машине и достаточно буквально скопировать файлы из ствола в ветку и проверить оба.

Ответ 4

Я использую TortoiseSVN 1.9.3, Build 27038.

Следуйте инструкциям ниже, чтобы объединить ветвь в магистраль.

1) Щелкните правой кнопкой мыши на рабочей копии соединительной линии и выберите вариант ниже.

введите описание изображения здесь

2) В случае разделения ветки на выбор внешней линии, как показано ниже, и нажмите кнопку

введите описание изображения здесь

3) В поле From: введите полный URL-адрес папки соединительной линии. Это может звучать неправильно, но помните, что соединительная линия является начальной точкой, к которой вы хотите добавить изменения ветки. В поле Кому: введите полный URL-адрес папок для ветки функции.

введите описание изображения здесь

4) Нажмите "Далее" и выполните тестовое слияние

введите описание изображения здесь

5) Если тестовое слияние выполнено успешно, нажмите кнопку "Слияние".

6) После того как слияние выполнено успешно, выполните фиксацию изменений в соединительной линии.