Как автоматически удалить все.orig файлы в ртутном рабочем дереве?
во время слияния ртутных листьев .orig файл для любого неразрешенного файла. Но после ручного решения проблем и маркировки файла правильно он не удаляет .файл orig. Может ли он быть автоматически удален какой-либо командой?
Я работаю на Mac, поэтому я могу использовать что-то вроде:
find . -iname '*.orig' -exec rm '{}' ';'
и псевдоним его или что-то, но я бы предпочел использовать что-то вроде очистки hg...
обновление:
С некоторых пор,очистить расширением is в комплекте с Mercurial и решает эту проблему красиво.
11 ответов:
лично я использую
$ rm **/*.origесли я устану от
.origфайлы. Это работает в Zsh и в Bash 4 после запускаshopt -s globstar.но если вы используете другую оболочку или хотите встроенное решение, то, возможно, Вам понравится очистить расширением (ссылка обновлена 2016-08-25). Это позволяет удалить все неотслеженные файлы с помощью
$ hg purgeвы можете удалить все неотслеженные и игнорируемые файлы с помощью
$ hg purge --allпреимущества использования
hg purgeis что это также будет очистка каталогов, которые становятся пустыми после удаления файлов. Элементrmкомандная строка просто оставит пустые каталоги позади.
кстати.
findутилита имеет действие-deleteтаким образом, вы можете ввести только:
find <path-to-files> -name '*.orig' -delete
Если вы просто хотите удалить .orig файлы, и вы случайно находитесь на компьютере с Windows, следующее, кажется, работает хорошо:
D:\workspace>hg purge -I **/*.orig --allэто приведет к удалению всех неотслеженных файлов, которые заканчиваются .ориг, но не будет удалять другое неотслеживаемый файлы, как и другие ответы.
вы можете проверить это перед запуском, поставив
следующее будет удалено .orig файлы во всей иерархии рабочей копии, а также работает для путей, содержащих пробелы:
find . -name *.orig | while read -d $'\n' file; do rm -v "$file"; done;Я использую псевдоним в моем .файл:
alias clearorig='echo "Removing .orig files..."; find . -name *.orig | \ while read -d $'\''\n'\'' file; do rm -v "$file"; done;'
я опубликовал этот ответ до. Но это правильное место для этого ответа.
Я сам сделал этот пакетный файл.
IF "%1%" == "d" ( del /s *.orig del /s *.rej ) ELSE ( del /s /p *.rej del /s /p *.orig )помогите: Сохраните это содержимое как ориг.летучая мышь
- выполнить
orig dудалить все браки и orig файлы сразу без подтверждения- выполнить
origдля удаления файлов с подтверждением [механизм безопасности]Надежда это полезно.
Я лично использую следующее из корня РЕПО:
hg purge -p -I **/*.orig | xargs rm -fЭто немного лучше, чем использовать только "HG purge" или "HG purge --all", потому что вы можете отфильтровать конкретные типы файлов, которые вы хотите включить.
объяснение:
- аргумент-P выводит список файлов, которые будут удалены
- белый список аргументов-I фильтрует файлы для включения
- полученный список передается в xargs и выполняется с помощью команда rm-f
Я работаю в Powershell и не видел ответа здесь:
# NOTE: be in the root of your repository # fetch all .orig files recursively $orig = (dir *.orig -recurse) ; # remove each .orig file foreach ($item in $orig) { del $($item.FullName) ; } # afterwards I make sure to remove the references to the .orig files in the repo # then commit & push hg addremove ; hg commit -m "remove .orig" ; hg push ;
вы должны использовать обновление крюк
обновление: это выполняется после обновления или слияние рабочий каталог закончился
это не автоматический способ удаления лишних файлов, но он достаточно прост для запуска Вручную.
The
hg stможет показать неизвестный или не отслеживается файлы. Вы можете использовать этот вывод в качестве аргумента для системы . Вот реальный пример, который я только что выполнил:$ # SHOW ONLY THE CRUFT $ hg status --unknown ? config/settings.rb.orig ? lib/helpers.rb.orig ? routes/main.rb.orig $ # THE CRUFT WITHOUT THE "?" PREFIX $ hg status --unknown --no-status config/settings.rb.orig lib/helpers.rb.orig routes/main.rb.orig $ # SAFELY REMOVE ALL CRUFT $ rm -- `hg st -un`если у вас остались пустые каталоги, то
-rи-dфлагиrmможет помочь.как бонус,
hg status --ignoredможет использоваться для очистки всех этих игнорируемых временных файлов, а также файлов подкачки из вашего редактора (например, Vim).
команда, которую я использую на Linux для очистки, сохраняет необходимость сделать новый поиск с помощью find.
Они должны быть запущены из корневого каталога проекта Mercurial
hg status | grep ".orig" | cut -d ' ' -f 2- | xargs rm -fили если вы хотите удалить все неизвестные файлы.
hg status | cut -d ' ' -f 2- | xargs rm -f