Переключить рабочую копию в ветку без фиксации в исходное местоположение - PullRequest
0 голосов
/ 05 января 2012

У меня небольшая проблема с SVN:

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

В TortoiseSVN я выполнил «Ветвь / Тег ...» и указал опцию «Рабочая копия» в группе «Создать копию в репозитории из:».Элементы были зафиксированы в местоположении ветви, но, к сожалению, я не могу переключить свою рабочую копию на эту новую ветку, потому что фиксация в реальном местоположении еще не была сделана.Я намеревался сделать дальнейшие коммиты в ветке разработчика и, наконец, объединить ветку с транком.

Есть ли способ обойти эту проблему?

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Одно из возможных решений:

  1. сохранить свою работу в файл патча: svn diff > my-work.patch
  2. оформить заказ на новую ветку в другом месте
  3. применить вашуработать с этой веткой, используя patch -p0 -i my-work.patch
  4. commit work
0 голосов
/ 10 сентября 2014

Вот способ сделать это.

  1. Сделайте резервную копию вашего проекта. Например, скопируйте папку на внешний жесткий диск.
  2. Tag (svn copy) самая высокая версия проекта, которая не содержит ваши изменения. Кончик ствола (или ответвления), которому вы еще не посвятили. Это будет копия на стороне сервера, URL на URL.
  3. Ветка (svn copy) той же незафиксированной ревизии проекта. Снова копия на стороне сервера.
  4. Переключатель (svn switch) на новую ветку.
  5. Запустите команду svn info, чтобы убедиться, что ваша папка рабочей копии фактически указывает на новую ветвь.
  6. Зафиксировать новую ветвь.

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

...