Есть ли способ зафиксировать изменения, которые я внес в мою проверку SVN транка, вместо этого?

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

3 ответа

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

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

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

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

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

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

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

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