SVN Рабочая копия для слияния разных разделов без фиксации рабочего ветки

Если из ветки была создана рабочая копия (локальная копия), давайте назовем ее A. Кодирование было выполнено в ветке A, но ветвь A была "Закрыта" для фиксации, и ветвь b была открыта. Как объединить изменения моей рабочей копии в ветку B и передать ветку B, не вставляя сначала мои изменения в ветвь A.

Магистраль → ветвь A.

   I checked out branch A and made changes.
   Branch A was closed to commits.

Новая ветвь создана из ветки А. ветвь A → ветвь B.

   I would like to commit my working copy changes (currently pointing at Branch A into branch B without commiting to Branch A)

Ответы

Ответ 1

  • Сделайте резервную копию своей рабочей копии.
  • svn switch к ветке B
  • просмотреть изменения (базовая версия может отличаться, а svn делает слепые, немой текстовые слияния только), разрешать конфликты, если есть
  • commit

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

Помните мантру svn: Зафиксировать раннее, совершить часто. Если у меня есть незафиксированные изменения, лежащие в течение более одного рабочего дня, я нервничаю. Обычно я создаю ветку признаков для любого развития, которое длится дольше нескольких часов. и регулярно берутся за это. Когда я закончу, я объединю его туда, куда он пришел, и удаляю его потом.

Ответ 2

Чтобы быть очень осторожным, я бы внес свои изменения в частную ветвь (позвоню ей C), а затем объединить ветвь C в новую ветку open-for-committ B.

  • cd в рабочий каталог с изменениями, которые вы хотите совершить.
  • svn copy . C
  • cd .. в папку рабочего пространства с проверками
  • svn co B
  • cd в каталог B
  • svn merge пересмотр с шага 2.
  • Просмотрите изменения.
  • Commit!