Svn имеет команду `revert-all`?


159

Если я хочу отбросить все свои изменения и вернуться к коду, находящемуся в хранилище, я делаю следующее:

$ rm -fr *
$ svn up

Это достаточно просто, но мне интересно, есть ли одна команда, которая выполнит это, что-то вроде:

$ svn revert-all

Кто использует -fr вместо -rf? Есть причина, по которой это произносится как rimraf, а не как rimfer.
Джимми Хоффа

@JimmyHoffa В чем причина?
Эрик Уилсон,

3
конвенция Уилсон! Соглашения, сэр! Без нашей дисциплины и культурных традиций мы всего лишь дикари! Я говорю, добрый день, сэр!
Джимми Хоффа

Ответы:


306

Вы могли бы сделать:

svn revert -R .

Это не удалит любой новый файл, не находящийся под контролем версий. Но вы можете легко написать сценарий оболочки для этого, например:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done

2
Добро пожаловать в SO, и спасибо за подробный ответ, поскольку svn revert -Rон не эквивалентен двум командам, которые я дал.
Эрик Уилсон

1
Для удаления всех файлов, которые не контролируются версиями в командной строке Windows, ответ здесь: stackoverflow.com/a/1502365/1385429
Кристиан Вестербик,

Пользователь mashzo указал (в уже удаленном ответе), что -Rфлаг может быть необходим, чтобы гарантировать, что неверсионные каталоги также будут удалены, как часть отбрасывания всех изменений. Подумайте о том, чтобы включить это в свой ответ, если это кажется вам подходящим.
Джереми Бэнкс

27

Есть команда

svn revert -R .

ИЛИ
вы можете использовать --depth = infinity, который на самом деле такой же, как указано выше:

svn revert --depth=infinity 

svn revertопасен по своей сути, поскольку его цель - отбросить данные, а именно ваши незафиксированные изменения. После того, как вы вернулись, Subversion не предоставляет способа вернуть эти незафиксированные изменения


7
-Rэквивалентно--depth=infinity
Майкл Берр

4
В вашем cmd "svn revert -R" отсутствует текущий каталог в синтаксисе .. это должно быть "svn revert -R".
Боддхисаттва

В настоящее время пост звучит как -Rвзаимоисключающий, --depth-infinityкогда это не так.
Анбизкад

@ahnbizcad Разве это не два точных синонима?
Nyerguds

Это моя точка зрения. Этот ответ заставляет звучать по-разному, когда это не так. «взаимоисключающий» = противоположность
синониму


0

Чтобы восстановить измененные файлы:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

Я думаю, что мое изменение форматирования представляет то, что вы хотите. Откат, если вам не нравится. И спасибо, это хорошо, чтобы вспомнить плохие старые времена SVN ... :)
Эрик Уилсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.