Как “восстановить” удаленную папку в Subversion / TortoiseSVN?

StackOverflow https://stackoverflow.com/questions/2265369

Вопрос

Мы случайно удалили папку 'tags' из нашего репозитория Subversion, где мы намеревались удалить только один конкретный тег.Какой самый простой способ вернуть папку "теги" обратно?

Мы используем TortoiseSVN в качестве нашего клиента, и я подумал, что когда я перейду в браузер репозитория и покажу журнал, там будет что-то вроде "отменить изменения из этой редакции", аналогично тому, что вы можете увидеть в аналогичном диалоговом окне в вашей рабочей копии.Но там нет такой команды...

Это было полезно?

Решение

Просто скопируйте удаленную папку обратно из более ранней версии.

В браузере репозитория нажмите кнопку с надписью 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), доступна официальная книга В сети.

Следуя из ответа рауди, который сработал для меня после этой ревизии.

Некоторым svn-клиентам может потребоваться номер редакции, указанный с помощью параметра -r revision вместо использования @ после папки следующим образом:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"

Гото Repository Browser из вашего repository, щелкните правой кнопкой мыши на родительской папке, в которой находится ваш удаленная папка существовал.Сейчас, Show Log родительской папки и выберите предыдущую редакцию, в которой вы выполнили операцию удаления.У вас будет список, щелкните правой кнопкой мыши папку из информации о редакции и выберите Update to this Revision.

С тобой покончено

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top