Consulte os hg padrões de ajuda . O Mercurial suporta a leitura de nomes de arquivo de um arquivo, assim você pode fazer
$ hg add listfile:myfiles.txt
e tem myfiles.txt
contendo os nomes dos arquivos para adicionar. O que é ainda mais interessante para você é que um "nome de arquivo" no Mercurial pode ser um padrão glob. Então você pode ter myfiles.txt
contain
.zshrc
.zprofile
glob:.less*
glob:.emacs*/**
etc, e o comando hg add
acima fará a coisa certa.
Você pode até usar conjuntos de arquivos para selecionar os arquivos. Esta é uma linguagem find
-like que permite fazer coisas como
set:exec() and not binary()
para selecionar arquivos executáveis que não sejam binários, ou seja, scripts.
Os comandos acima irão respeitar o arquivo .hgignore
e você não pode usá-los diretamente para resolver o seu problema. No entanto, você pode usar
$ hg status --all --no-status listfile:myfiles.txt
para obter uma lista de correspondências de arquivos pelos padrões, incluindo quaisquer arquivos que normalmente seriam ignorados. Você pode então usar essa lista de arquivos com hg add
:
$ hg status -A -n -0 listfile:myfiles.txt | xargs -0 hg add