Необходимо восстановить удаленную ветку в Subversion
У меня есть две рабочие копии репозитория Subversion, одна из соединительных линий и одна из ветки, которую я создал.
Я случайно удалил ветку в браузере репозитория. Как восстановить ветку? Есть ли способ отменить последнюю фиксацию для всего репозитория?
Ответы
Ответ 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"