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



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



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

679   6  

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"

Comments

    Ничего не найдено.