Вы можете указать файлы в командной строке, как пишет tonfa:
$ hg commit foo.c foo.h dir/
Это просто работает, и я делаю это все время. Вы также можете использовать --include
найденный вами флаг, и вы можете использовать его несколько раз следующим образом:
$ hg commit -I foo.c -I "**/*.h"
Вы даже можете использовать набор файлов для выбора файлов, которые хотите зафиксировать:
$ hg commit "set:size(1k - 1MB) and not binary()"
Нет настройки, которая отключила бы автоматическое добавление и заставила Mercurial работать так, как это делает Git. Однако расширение mq может быть интересно. Это расширенное расширение, но оно позволяет
$ 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
Я лично не использую MQ для этой цели, поскольку считаю, что достаточно просто указать имена файлов в командной строке.
hg ci foo bar baz