Как удалить необработанные файлы в SVN
Как удалить все необработанные файлы из проверки SVN с помощью инструмента командной строки svn
? Git и Hg предлагают команды clean
и purge
для этой цели, но я не могу найти соответствующую команду в SVN.
Мне все равно, нужно ли мне возвращать все мои локальные модификации в процессе (в этом случае я по сути хочу восстановить мой заказ в нетронутом состоянии) или могут ли локальные изменения в отслеживаемых файлах оставаться нетронутыми; либо ситуация приемлема.
Ответы
Ответ 1
Там может быть встроенный способ, но если это так, я не знаю об этом. Однако что-то вроде следующего должно выполнить эту задачу:
svn st | grep '^?' | awk '{print $2}' | xargs rm -rf
(Все неверсированные файлы должны появляться в строке, начинающейся с ?
в svn st
.)
EDIT (@GearoidMurphy)
Это сложно заставить этот фрагмент работать в среде cygwin, так как xargs обрабатывает прорези окон в качестве escape-последовательностей и не имеет проблем с анализом окончаний строк "\ r\n", ниже мое адаптированное решение этого вполне правильного ответа:
svn st | grep '^?' | gawk '{printf(\"%s|\", $2)}' | xargs -d "|" -n1 C:\cygwin\bin\rm -r
Ответ 2
svn-clean script делает именно это, хотя и полагается на установку perl. Он оставит локальные модификации неповрежденными, но удалит игнорируемые файлы. Запустите с '-p', чтобы просмотреть файлы, которые будут удалены.
Ответ 3
Эта команда должна выполнять задание, пробелы и все (только для OSX):
svn status | grep '^\?' | sed 's/? *//' | xargs -I% rm -fr %