Есть ли одна команда Subversion, которая «сбросит» рабочую копию точно до состояния, хранящегося в репозитории? Что-то вроде git reset --hard
или (ха, жесткий сброс Git тоже не удаляет неверсированные файлы!) rm -rf wc && svn co <url> wc
.
Обновление: я не хочу простого возврата, так как это не удаляет лишние файлы в рабочей копии. Я действительно хочу что-то, что было бы таким же, как удаление рабочей копии и повторная проверка, только без повторной загрузки данных. (Очевидно, я не против потерять все незафиксированные изменения.)
git clean -xdf
для удаления вещей, которые не находятся под контролем источника.git clean
цитирует именно то, что я ищу: «Это можно использовать (возможно, вместе с git reset) для создания нетронутого рабочего каталога для проверки чистой сборки». Жалко, что Subversion, похоже, не имеет ничего подобного встроенного.Ответы:
Вы можете рекурсивно вернуться следующим образом:
svn revert --recursive .
Невозможно (без написания творческого сценария) удалить вещи, которые не находятся под контролем источника. Я думаю, что самое близкое, что вы могли бы сделать, - это перебрать все файлы, использовать затем grep результат
svn list
и, если grep не работает, удалить его.РЕДАКТИРОВАТЬ : решение для творческого сценария находится здесь: автоматически удалять неверсированные файлы Subversion
Таким образом, вы можете создать сценарий, который сочетает в себе
revert
любой ответ в связанном вопросе, который вам подходит.источник
svn cleanup
сначала запустить туалет. Это моя стандартная практика очистки после прерванных слияний и прочего.Чтобы вернуть отслеживаемые файлы
Чтобы очистить неотслеживаемые файлы
-rf
Может / должен выглядеть страшно сначала, но как только понял , что это не будет по следующим причинам:rm
-rf
Требуется, иначе эти каталоги не будут удаленыЧтобы вернуться, затем очистите (вопрос OP)
Для постоянной простоты использования
Добавьте постоянный псевдоним к вашему .bash_aliases
источник
awk: fatal: error reading input file '-': Input/output error
?
вawk
команде, иначе она совпала бы со всеми строками в выводеsvn status
Удалите все внутри вашей локальной копии, используя:
И верните все рекурсивно, используя следующую команду.
Это намного быстрее, чем удаление всего каталога с последующим выполнением новой проверки, потому что файлы восстанавливаются из ваших локальных метаданных SVN. Ему даже не нужно подключение к сети.
источник
сбросить все.
для одного файла
источник
Удалите неверсированные файлы и отмените все изменения:
Вне:
источник
Чистое решение Windows cmd / bat:
источник
Удалить рабочую копию из ОС и проверить еще раз - это проще простого, но явно не одной командой.
источник
Очень быстро и просто, и сделает именно то, что вы хотите
/(Config|.ini)/ предназначен для моих целей.
И было бы неплохо добавить --no-ignore к команде svn
источник
Чтобы удалить неотслеживаемые файлы
Я смог перечислить все неотслеживаемые файлы, о которых сообщил
svn st
в bash, выполнив:Если вам повезет, вы можете заменить
echo
на,rm
чтобы удалить неотслеживаемые файлы. Или скопируйте файлы, которые хотите удалить, вручную, если вам не повезло.(Я использовал @ ABE-Воелкер «s ответ вернуться оставшиеся файлы: https://stackoverflow.com/a/6204601/1695680 )
источник