Подтвердить что ты не робот

Необходимо восстановить удаленную ветку в Subversion

У меня есть две рабочие копии репозитория Subversion, одна из соединительных линий и одна из ветки, которую я создал.

Я случайно удалил ветку в браузере репозитория. Как восстановить ветку? Есть ли способ отменить последнюю фиксацию для всего репозитория?

4b9b3361

Ответ 1

Использование:

svn cp [path to deleted branch]@[revision before delete] [new path]

Например:

svn cp svn://myrepo.com/svn/branches/[email protected] \
       svn://myrepo.com/svn/branches/2.0.5_restored

Где 1993 - это ревизия перед удалением...

Здесь есть хорошая документация...

Должен быть какой-то способ избежать символа @ в имени пользователя...

Ответ 2

Вот решение, если вы используете TortoiseSVN:

  • В браузере репо перейдите к родительской папке удаленной папки (например, "ветки" ).
  • Щелкните правой кнопкой мыши на папке и выполните "Показать журнал".
  • Найдите версию, в которой вы удалили конкретную папку ветвей.
  • Выберите версию непосредственно перед этой ревизией.
  • Щелкните правой кнопкой мыши и выберите "Обзор репозитория". Теперь вы просматриваете состояние хранилища в момент времени перед удалением ветки.
  • Найдите удаленную папку ветки, выберите, щелкните правой кнопкой мыши и выберите "Копировать в..."
  • Теперь вы можете скопировать удаленную папку либо в новое имя, либо с тем же именем.

Ответ 3

Предполагая, что ваша последняя версия была 108:

svn merge --revision 108:107
svn diff 
svn commit -m "Reverted revision 108"

Вы также можете добавить URL-адрес источника для слияния:

svn merge --revision 108:107 http://svn/repo/

В другом месте по переполнению стека: Отмена фиксации в TortoiseSVN

Ответ 4

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

Исправлена ​​ревизия 9331. Я проверил ее в 9330:

svn co https://svn.acme.com/svn/giantFlySwatterTargetingSystem/branches/[email protected] restored

Это было простое решение, которое я хотел.

Ответ 5

Это сработало для меня,

svn cp --username your_user_namehttps:// path_to_your_repo/ветки/ deleted_branch_name @ last_revision_before_deletionhttps:// path_to_your_repo/ветки/ new_name_for_branch

Ответ 6

В качестве альтернативы, если это была одна фиксация, которая удалила ветку:

Отменить фиксацию и затем зафиксировать

svn merge -c -REV .
svn commit -m "Reverting deletion of branch XYZ"