Как автоматически удалить все.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 purge
is что это также будет очистка каталогов, которые становятся пустыми после удаления файлов. Элемент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