Вернуть svn-папку в предыдущую версию
Чтобы вернуть конкретную папку в SVN в ее предыдущее состояние, я в настоящее время использую следующее:
svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/[email protected]
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'
Кажется, слишком много проблем для того, что должно быть довольно распространенным случаем использования. Я должен делать это неправильно. Как еще вы можете это сделать?
Ответы
Ответ 1
Почему бы не использовать svn merge
?
Предполагая, что вы хотите вернуться из текущей версии HEAD (последняя версия) в версию 268:
cd folder
svn up
svn merge -r HEAD:268 .
Затем разрешите все конфликты вручную (не должно быть ничего, если нет локального изменения) и:
svn commit -m "- reverted to revision 268"
Чтобы вернуть одно изменение (например, сделанное в редакции 666):
cd folder
svn merge -c -666 .
Чтобы вернуть локальные изменения (еще не зафиксировано):
cd folder
svn revert -R .
Ответ 2
Вы можете использовать svn merge
для этой задачи, см. http://svnbook.red-bean.com/en/1.1/ch04s04.html#svn-ch-4-sect-4.2 для примера
Ответ 3
Почему бы не использовать 'svn merge'?
Вот почему: "Затем разрешите любые конфликты вручную [..]"
Если я знаю, что "папка" в редакции 268 содержит согласованные данные, которые я хотел бы продолжить, почему бы автоматически создать слияние с потенциально несогласованными данными, чтобы вручную удалить эти изменения позже. Он подвержен ошибкам и побеждает цель моего инструмента управления конфигурацией.
т.е. Я бы предпочел рецепт оригинального запроса с небольшим улучшением. Если вы используете 'svn export' для получения старой версии, вам не нужно удалять файлы .svn:
svn rm folder
svn commit -m 'removed folder to revert to previous version' .
svn export -r 268 http://pathto/repo/folder
svn add folder
svn commit -m 'reverted to the previous version' folder
Ответ 4
вы также можете использовать
svn revert folder/*
который вернет весь файл под folder