Как "восстановить" удаленную папку в 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"