Есть ли способ передать изменения, которые я внес в мою проверку SVN транка, в ветку? - PullRequest
7 голосов
/ 03 октября 2009

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

Ответы [ 3 ]

13 голосов
/ 03 октября 2009
  1. создайте новую ветку из того места, где вы начали разработку
  2. переключиться на вновь созданную ветку
  3. зафиксировать локальные изменения (передаст новую ветку)

НЕ СДЕЛАЙТЕ ЛЮБОЙ ПРОВЕРКИ

Я делаю это с SVN 1.6.5, он работает без проблем, но если вы действительно параноик, вы можете сделать следующее:

  1. создать патч из текущей рабочей копии
  2. создать ветку
  3. переключиться на него
  4. применить патч
  5. 1022 * совершить *
2 голосов
/ 04 октября 2009

Вы можете напрямую передать состояние вашей рабочей копии на URL с помощью команды svn copy. Созданная ветка будет включать локальные модификации.

Некоторые ошибки:

  • Вы можете получить ошибки с указанием чего-либо как "Файл уже существует". Это вызвано несоответствием базовых изменений в ваша рабочая копия, точнее между файлом и его родительской папкой. Один возможное решение это сделать svn update перед пытаясь разветвляться таким образом.
  • после svn copy, рабочий копия останется без изменений. Это все еще будет указывать на багажник. Это также покажет местный изменения в его статусе. Вы следует сначала отменить эти модификации, будь то вы продолжаете использовать рабочую копию как есть или переключаете ее в новый филиал.
2 голосов
/ 03 октября 2009

Как насчет создания патча из вашей текущей работы с svn diff, затем создания новой ветки и применения патча к ветке с patch -p0?

...