Есть ли способ зафиксировать изменения, которые я внес в мою проверку SVN транка, вместо этого?
Я только начал работать над некоторыми изменениями ствола в репозитории SVN, думая, что они будут несколько малы. Теперь я на самом деле начинаю понимать, что я, вероятно, должен был просто начать новую ветку. Вместо того, чтобы создавать ветку и затем перемещать каждую отдельную часть в нее, есть ли способ создать новую ветку и затем зафиксировать изменения в моей рабочей копии?
3 ответа
- сделать новую ветку с того места, где вы начали разработку
- переключиться на вновь созданную ветку
- зафиксировать локальные изменения (передаст новую ветку)
НЕ СДЕЛАЙТЕ ЛЮБОЙ ПРОВЕРКИ
Я делаю это с SVN 1.6.5, он работает без проблем, но если вы действительно параноик, вы можете сделать следующее:
- создать патч из текущей рабочей копии
- создать ветку
- переключиться на это
- применить патч
- совершить
Как насчет создания патча из вашей текущей работы с svn diff
затем создайте новую ветку и примените патч к ветке с помощью patch -p0
?
Вы можете напрямую передать состояние вашей рабочей копии на URL с помощью svn copy
команда. Созданная ветка будет включать локальные модификации.
Некоторые ошибки:
- Вы можете получить ошибки, в которых говорится, что "Файл уже существует". Это вызвано несоответствием базовых ревизий в вашей рабочей копии, в частности между файлом и его родительской папкой. Одним из возможных решений является сделать
svn update
прежде чем пытаться разветвляться таким образом. - после
svn copy
, рабочая копия останется без изменений. Это все еще будет указывать на багажник. Это также все еще покажет локальные изменения в своем статусе. Сначала вы должны отменить эти изменения независимо от того, продолжаете ли вы использовать рабочую копию как есть или переключаете ее на новую ветку.