Mercurial (hg) compromete solo ciertos files

Estoy intentando comprometer solo ciertos files con Mercurial. Debido a que hg tiene auto-agregar cada vez que trato de confirmar un cambio, quiere enviar todos los files. Pero no quiero eso porque ciertos files aún no están "listos".

Ahi esta

hg commit -I thefile.foo 

pero esto es solo para un file. La mejor manera para mí sería si puedo desactivar el auto-agregado como en Git. es posible?

Puede especificar los files en la línea de command, como tonfa escribe:

 $ hg commit foo.c foo.h dir/ 

Eso solo funciona y eso es lo que hago todo el time. También puede usar el indicador --include que ha encontrado, y puede usarlo varias veces de esta manera:

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

Incluso puede usar un set de files para seleccionar los files que desea confirmar:

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

No hay ninguna configuration que desactivará el comportamiento de autoañadir y hará que Mercurial funcione como lo hace Git. Sin embargo, la extensión mq podría ser de interés. Es una extensión avanzada, pero te permite hacer

 $ 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 

Realmente, yo no uso MQ para este propósito, ya que creo que es suficiente con especificar los nombres de los files en la línea de command.

Si desea enviar algunos files y excluir muchos otros, enumere explícitamente los files que desea confirmar. -I es necesario si desea utilizar patrones en lugar de files.

Si desea enviar muchos files y excluir solo algunos files, usar -X es más conveniente.

Por ejemplo, dado un repository que contiene "file_1", "file_2" y "file_3", los siguientes son equivalentes, pero este último es más fácil / más rápido de escribir:

 hg commit file_1 file_2 hg commit -X file_3 

Como se sugiere en esta pregunta sobre desbordamiento de stack , la forma más sencilla de hacerlo es con hg shelve .