Если я хочу отбросить все свои изменения и вернуться к коду, находящемуся в хранилище, я делаю следующее:
$ rm -fr *
$ svn up
Это достаточно просто, но мне интересно, есть ли одна команда, которая выполнит это, что-то вроде:
$ svn revert-all
Если я хочу отбросить все свои изменения и вернуться к коду, находящемуся в хранилище, я делаю следующее:
$ rm -fr *
$ svn up
Это достаточно просто, но мне интересно, есть ли одна команда, которая выполнит это, что-то вроде:
$ svn revert-all
Ответы:
Вы могли бы сделать:
svn revert -R .
Это не удалит любой новый файл, не находящийся под контролем версий. Но вы можете легко написать сценарий оболочки для этого, например:
for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done
svn revert -R
он не эквивалентен двум командам, которые я дал.
-R
флаг может быть необходим, чтобы гарантировать, что неверсионные каталоги также будут удалены, как часть отбрасывания всех изменений. Подумайте о том, чтобы включить это в свой ответ, если это кажется вам подходящим.
Есть команда
svn revert -R .
ИЛИ
вы можете использовать --depth = infinity, который на самом деле такой же, как указано выше:
svn revert --depth=infinity
svn revert
опасен по своей сути, поскольку его цель - отбросить данные, а именно ваши незафиксированные изменения. После того, как вы вернулись, Subversion не предоставляет способа вернуть эти незафиксированные изменения
-R
эквивалентно--depth=infinity
-R
взаимоисключающий, --depth-infinity
когда это не так.
Чтобы восстановить измененные файлы:
sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'