Как забыть все удаленные файлы с помощью Mercurial - PullRequest
23 голосов
/ 24 марта 2010

Я новичок в Mercurial и после очистки папки с изображениями в моем проекте у меня появляется куча файлов с! в «статус HG». Я могу напечатать «hg забудьте» для каждого, но должен быть более простой способ.

Так как я могу сказать mercurial забыть обо всех удаленных (status =!) Файлах в папке?

Ответы [ 5 ]

27 голосов
/ 24 марта 2010

Если вы также можете добавлять любые файлы, которые существуют и не игнорируются, то:

hg addremove

был бы популярным способом сделать это.

9 голосов
/ 16 октября 2011

С набором файлов (Mercurial 1.9):

hg forget "set:deleted()"

В общем случае на Linux или Mac:

hg status -dn | while read file ; do hg forget "$file" ; done

Или, если ваша оболочка это позволяет, если файлов не слишком много и если имена файлов не содержат пробелов или специальных символов, то:

hg forget $(hg st -dn)

I

3 голосов
/ 24 марта 2010

Вы можете попробовать:

hg forget -I '*'

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

1 голос
/ 20 сентября 2012

Используя флаг -d для статуса, который отображает отсутствующие файлы:

for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done

Запустите это в корне вашего репо, и если вы довольны результатами, удалите echo

Это дает бонус за принятый ответ: , а не , выполняющий какую-либо дополнительную работу, например, добавление нескольких неотслеживаемых файлов.

0 голосов
/ 09 января 2014
* На 1000 * короче вместо
for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done

это

hg status -d | cut -d " " -f 2 | xargs echo hg forget # test case
hg status -d | cut -d " " -f 2 | xargs hg forget # real work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...