Mercurial (hg) commit only certain files

You can specify the files on the command line, as tonfa writes:

$ hg commit foo.c foo.h dir/

That just works and that’s what I do all the time. You can also use the --include flag that you’ve found, and you can use it several times like this:

$ hg commit -I foo.c -I "**/*.h"

You can even use a fileset to select the files you want to commit:

$ hg commit "set:size(1k - 1MB) and not binary()"

There is no setting that will turn off the auto-add behavior and make Mercurial work like Git does. However, the mq extension might be of interest. That’s an advanced extension, but it allows you do to

$ 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

I don’t really use MQ for this purpose myself, though, since I think it’s enough to just specify the filenames on the command line.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)