hg remove -I PATTERN, как это работает? - PullRequest
5 голосов
/ 08 ноября 2011

Как удалить все файлы * .bak или * .orig в Mercurial?

пример:

C:\dev\web>hg stat
? Views\System\UnderConstruction.cshtml.bak
? Views\Topic\Index.cshtml.bak
? Views\Topic\MasterPage.cshtml.bak
? Web.config.bak

C:\dev\web>hg rem -I *.bak
abort: no files specified

Ответы [ 4 ]

5 голосов
/ 08 ноября 2011

hg remove удаляет только те файлы, которые были зафиксированы.AFAIK, в mercurial нет команды для удаления неотслеживаемых файлов.

Чтобы узнать, как шаблоны файлов работают в mercurial, запустите hg help patterns.

2 голосов
/ 08 ноября 2011
  1. Неотслеживаемые файлы (знак «?») Могут быть удалены операционной системой, а не Mercurial
  2. Вы должны оставить файлы как есть, просто добавьте шаблоны в .hgignore и после него файлы, соответствующие шаблонам,больше не будет отображаться в hg status
  3. Правильно команда удаления для удалить отслеженный бак, а файлы orig будут hg remove -I **.bak -I **.orig
1 голос
/ 08 ноября 2011

Вы должны взглянуть на расширение hg purge:

Удалить файлы, неизвестные Mercurial. Это полезно для проверки локальных и незафиксированные изменения в чистом в противном случае дереве исходного кода.

Это означает, что очистка удалит:

  • Неизвестные файлы: файлы, помеченные знаком "?" по "статус hg"
  • Пустые каталоги: фактически Mercurial игнорирует каталоги, если они не содержат файлы, находящиеся под управлением исходного кода

Но он останется нетронутым:

  • Измененные и неизмененные отслеживаемые файлы
  • Игнорируемые файлы (если не указано --all)
  • Новые файлы добавлены в хранилище (с «hg add»)

Если каталоги указаны в командной строке, только файлы в этих каталоги считаются.

Будьте осторожны с продувкой, поскольку вы можете безвозвратно удалить некоторые файлы, которые забыл добавить в репозиторий. Если вы хотите распечатать список файлы, которые эта программа удалит, используйте параметр --print.

0 голосов
/ 15 ноября 2012

Вы можете сделать следующие две команды:

D:\workspace>hg purge -I **/*.orig --all

и затем:

D:\workspace>hg purge -I **/*.bak --all

Отслеживаемые файлы не будут удалены, но я думаю, это не проблема для вас. Перед запуском убедитесь, что вы включили расширение очистки, и вы можете выполнять пробные прогоны с аргументом --print.

...