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