SVN Рабочая копия в другую ветвь без объединения с рабочей копией - PullRequest
13 голосов
/ 25 мая 2010

Если рабочая копия (локальная копия) была создана из ветви, давайте назовем ее A. Кодирование было выполнено в ветви A, но ветвь A была «закрыта» для фиксации, и ветка b была открыта. Как объединить изменения моей рабочей копии с веткой B и зафиксировать ветку B, не передавая изменения сначала в ветку 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)

Ответы [ 2 ]

16 голосов
/ 25 мая 2010
  1. Сделайте резервную копию вашей рабочей копии.
  2. svn switch в филиал B
  3. просматривать изменения (базовая ревизия может отличаться, а svn делает слепые, только глупые текстовые слияния), разрешать конфликты, если таковые имеются
  4. коммит

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

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

2 голосов
/ 03 апреля 2013

Чтобы быть очень осторожным, я бы зафиксировал свои изменения в частной ветви (назовем это C), а затем слил ветку C в новую ветку open-for-commits B.

  1. cd в рабочий каталог с изменениями, которые вы хотите зафиксировать
  2. svn copy . C
  3. cd .. в папку вашего рабочего пространства с проверками
  4. svn co B
  5. cd в каталог B
  6. svn merge редакция из шага 2.
  7. Просмотр изменений.
  8. Commit!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...