Você pode especificar os arquivos na linha de comandos, como tonfa escreve:
$ hg commit foo.c foo.h dir/
Isso simplesmente funciona e é isso que faço o tempo todo. Você também pode usar o --include
sinalizador que encontrou e usá-lo várias vezes como este:
$ hg commit -I foo.c -I "**/*.h"
Você pode até usar um conjunto de arquivos para selecionar os arquivos que deseja confirmar:
$ hg commit "set:size(1k - 1MB) and not binary()"
Não existe uma configuração que desative o comportamento de adição automática e faça o Mercurial funcionar como o Git. No entanto, a extensão mq pode ser interessante. Essa é uma extensão avançada, mas permite que você faça
$ hg qnew feature-x # create new patch
$ hg qrefresh -s foo.c # add a file to the current patch
$ hg qrefresh -s bar.c # add another file to the patch
$ hg qfinish -a # convert applied patches to normal changesets
No entanto, eu realmente não uso o MQ para esse fim, pois acho que basta especificar os nomes de arquivos na linha de comando.
hg ci foo bar baz