Используйте TortoiseSVN для слияния изменений ветвей с соединительной стволом

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

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

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

В мире pre-svn я бы просто скопировал файлы в папку ветки, удалил файлы в папке trunk, а затем скопировал ветку в trunk.

В TortoiseSVN я попытался "Реинтегрировать ветку", "Объединить ряд изменений" и "Слить два разных дерева". Кажется, что ничто не меняет сундук. Я также попробовал разветвление на верхней части ствола. Это дает мне ошибку, говоря, что багажник уже существует.

В этот момент я просто не знаю, что вы нажимаете на кнопку, надеясь, что что-то будет работать.

4b9b3361

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

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

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


Обновление

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

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

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

155
ответ дан 08 янв. '09 в 18:20
источник

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

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

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

10
ответ дан 20 мая '14 в 21:16
источник

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

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

6
ответ дан 08 янв. '09 в 18:04
источник

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

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

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

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

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

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

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

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

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

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

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

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

2
ответ дан 13 нояб. '17 в 15:26
источник