2013-11-03 3 views
0

hg st -i отображает все проигнорированные файлы. Это может быть огромный список, если я игнорирую некоторые внешние библиотеки. Можно ли увидеть только каталоги, в которых файлы были проигнорированы? Или каким-то другим способом аккуратно суммировать, какие файлы/каталоги были проигнорированы?Подведите итоги всех игнорируемых файлов/каталогов в ртутном хранилище

ответ

2

Если вы работаете в Unix (Linux/OS X), вы можете легко создать список каталогов, содержащих проигнорированные файлы, с однострочным ниже.

% hg status -i 
I .project 
I project/doc/API-notes.bbl 
I project/doc/API-notes.blg 
I project/doc/API-notes.log 

% hg status -ni | sed -e 's/^/.\//' -e 's/\/[^\/]*$/\//' | sort | uniq -c 
    1 ./ 
    3 ./project/doc/ 

Первое выражение sed добавляет перед каждого игнорировали пути ./. Второе выражение удаляет все после окончательной косой черты. Я намеренно восстанавливаю косую черту; оставьте это, если хотите. Наконец, sort | uniq -c подсчитывает и удаляет повторы.

PS. Вы можете включить это в псевдоним hg, чтобы вы могли, например, запустить его с hg ignoredirs; просто поместите в вашем .hgrc:

[alias] 
ignoredirs = !$HG status -ni | sed -e 's/^/.\//' -e 's/\/[^\/]*$/\//' | sort | uniq -c 
+0

Вы потрясающий. Я на Cygwin/Win 7. Моя команда была 'hg stat -ni | sed -e "s/^/\\\ /" -e "s/\\\ [^ \\\] * $ //" | сортировать | uniq -c' - Использовать двойную кавычку и двойной escape для разделителя пути обратной косой черты – Medorator

+0

Cygwin не поддерживает одинарные кавычки для группировки? Вздох. Я никогда не пробовал, так как я обычно могу ssh или ходить в среду * nix ... Но рад, что вы можете использовать это решение! – alexis

0

Следующие запустить в корневой директории вашего хранилища:

cat ./.hgignore 

или на окнах:

type .\.hginore 

будет отображать хранилища игнорирующих правил ,

Это может состоять из Глоб и или регулярных выражений шаблонов и имен конкретных файлов, для секции Глоба любой путь, заканчивающийся / будет игнорировать весь каталог и все подкаталоги, шаблон формата *.ext будет игнорировать это расширение во всех подкаталогах, dir/*.ext будет игнорировать это расширение в подкаталогах, как указано, и т. Д.

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

Смежные вопросы