Как "восстановить" удаленную папку в Subversion / TortoiseSVN?
мы случайно удалили папку "теги" из нашего репозитория Subversion, где мы намеревались удалить только один конкретный тег. Каков самый простой способ вернуть папку "теги"?
мы используем TortoiseSVN в качестве нашего клиента, и я подумал, что когда я пойду в браузер РЕПО и покажу журнал, будет что-то вроде "отменить изменения из этой ревизии" аналогично тому, что вы можете увидеть в аналогичном диалоге на вашей рабочей копии. Но такой команды там нет...
6 ответов
просто скопируйте удаленную папку обратно из более ранней версии.
в браузере репозитория нажмите кнопку с надписью HEAD (в правом верхнем углу), чтобы показать редакции, что ваша папка все еще существует, затем щелкните правой кнопкой мыши эту папку и выберите "Копировать в..."и введите путь туда, где вы хотите, чтобы папка была воссоздана (вероятно, тот же путь, который уже находится в текстовом поле).
для любителей командной строки:
-
сначала найдите номер редакции, где произошло удаление:
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
скажем, вы обнаружите, что каталог был удален в редакции 999 (кстати: возможно, Вам будет проще найти номер редакции в браузере SVN repo)
-
скопируйте папку из редакции минус 1
svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
вуаля ты готово!
в вашем случае это может быть:
svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"
большинство из этих ответов будут работать в определенной степени, но правильный ответ Даниила. Выполните обратное слияние. Таким образом, вы сохраняете историю версий.
svn merge -r R1:R2
где R1-это ревизия, в которой вы находитесь, а R2-ревизия, содержащая удаленный файл/папку.
вам понадобится обратное слияние.
для получения подробной информации о том, как это сделать (и почти все, что вы когда-либо хотели или должны были сделать с SVN), официальная книга доступна онлайн.
перейти Repository Browser
вашего repository
, щелкните правой кнопкой мыши на родительской папке, где ваш удалил папку существовало. Теперь,Show Log
родительской папки и выберите предыдущую редакцию, в которой была совершена операция удаления. У вас будет список и щелкните правой кнопкой мыши на папке из информации о ревизии и выберите Update to this Revision
.
Вы молодец
после ответа Рауди, который работал для меня после этой ревизии.
некоторым клиентам svn может потребоваться номер редакции, указанный с помощью параметра-r revision вместо использования @ после папки следующим образом:
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"