Вернуть папку SVN в предыдущую ревизию - PullRequest
46 голосов
/ 24 февраля 2010

Чтобы вернуть определенную папку в SVN к ее предыдущему состоянию, я в настоящее время использую следующее:

svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/folder@268
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'

Кажется, слишком много проблем для того, что должно быть довольно распространенным вариантом использования. Я должен делать это неправильно. Как еще можно это сделать?

Ответы [ 4 ]

89 голосов
/ 24 февраля 2010

Почему бы не использовать 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 .
1 голос
/ 04 июня 2013

Почему бы не использовать 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
1 голос
/ 24 февраля 2010

Вы можете использовать svn merge для этой задачи, см. http://svnbook.red -bean.com / ru / 1.1 / ch04s04.html # svn-ch-4-sect-4.2 для примера

0 голосов
/ 05 сентября 2014

Вы также можете использовать

svn revert folder/*

, который вернет все файлы в folder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...