2011-07-26 2 views
1

Это, наверное, глупый вопрос, но я еще не сделал этого раньше в Svn.Попадание в новую ветку Subversion

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

Какая процедура здесь? Благодаря

ответ

5

Найти ревизию вашей рабочей копии на основе:

svn info . 

Копия, что пересмотр ствола к ветви на сервере с

svn copy svn://yourrepo/trunk svn://yourrepo/branches/a -r [revision] 

, а затем переключить туалет в филиал

svn switch svn://yourrepo/branches/a 

Затем вы можете зафиксировать свои текущие изменения в ветке.

+1

Поскольку багажник уже перемещен дальше, и он еще не готов к сливанию; Вероятно, хотите добавить -r к копии, где будет rev. на основе локальной рабочей копии. – PtPazuzu

+0

Это ключ - спасибо PtP. Как я могу узнать, какую версию соединительной линии мне нужно скопировать? –

+1

'svn info .' должен содержать rev. info – PtPazuzu

0

В нескольких простых шагах:

1) вы должны ответвляетесь багажник (что потребует от вас, чтобы создать другую папку в хранилище для нового филиала). Если вы используете Tortoise SVN вы просто щелкнуть правой кнопкой мыши на рабочей папке и выберите branch в подменю Tortoise Svn

2) на вашей рабочей папке вы должны использовать команду switch, чтобы начать работать в новой отрасли. В Tortoise право> Нажать на коммутаторе и выберите новую ветку

и вы работаете в отрасли в настоящее время

НТН, JP

0

Это на самом деле очень хороший вопрос. То, что я сделал бы в этом сценарии, - создать ветку, не основанную на текущей рабочей копии, а на ревизию сундука, когда вы сделали свою Рабочую копию.

Вот шаги:

  1. Создать новую папку ветви.
  2. Сделайте «информацию svn» и попытайтесь получить номер версии с того момента, когда вы сделали свою Workng Copy of Trunk. Например, если вы сделали рабочую копию на Rev 40, а ревизия HEAD теперь на 60, вам необходимо использовать Rev 40 в качестве базовой версии новой ветви.
  3. Сделайте копию «svn copy» и используйте этот номер редакции при копировании версии Trunk в новую папку ветви.
  4. Сделайте «svn checkout» новой ветки.
  5. Скопируйте файлы из рабочей копии соединительной линии в рабочий экземпляр ветки.
  6. Зафиксируйте изменения из рабочей копии отделения и отмените рабочую копию соединительной линии.

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

+0

Спасибо, это кажется очень похожим на принятый ответ. Что там не хватает? –

Смежные вопросы