Estoy tratando de confirmar solo ciertos archivos con Mercurial. Debido a que hg tiene auto-add cada vez que intento realizar un cambio, quiere confirmar todos los archivos. Pero no quiero eso porque ciertos archivos aún no están "listos".
Ahi esta
hg commit -I thefile.foo
pero esto es solo para un archivo. La mejor manera para mí sería si puedo desactivar la adición automática como en Git. es posible?
version-control
mercurial
commit
Praveen Kumar Purushothaman
fuente
fuente
hg ci foo bar baz
Respuestas:
Puede especificar los archivos en la línea de comando, como escribe tonfa:
Eso simplemente funciona y eso es lo que hago todo el tiempo. También puede usar la
--include
bandera que ha encontrado, y puede usarla varias veces así:Incluso puede usar un conjunto de archivos para seleccionar los archivos que desea confirmar:
No hay ninguna configuración que desactive el comportamiento de adición automática y haga que Mercurial funcione como lo hace Git. Sin embargo, la extensión mq puede resultar de interés. Es una extensión avanzada, pero te permite hacerlo
Sin embargo, yo mismo no uso MQ para este propósito, ya que creo que es suficiente especificar los nombres de archivo en la línea de comando.
fuente
Si desea confirmar algunos archivos y excluir muchos otros, enumere explícitamente los archivos que desea confirmar.
-I
solo es necesario si desea utilizar patrones en lugar de archivos.Si desea confirmar muchos archivos y excluir solo unos pocos, usar
-X
es más conveniente.Por ejemplo, dado un repositorio que contiene "archivo_1", "archivo_2" y "archivo_3", los siguientes son equivalentes, pero este último es más fácil / rápido de escribir:
fuente
A partir de 3.8 también puede usar
hg commit --interactive
para seleccionar los archivos (antes de 3.8 puede usar la extensión crecord para una funcionalidad similar). La bandera--interactive
(o simplemente-i
) hará que hg le solicite los archivos que desea incluir en la confirmación. Como beneficio adicional, incluso puede incluir / excluir fragmentos dentro de los archivos.A continuación se muestra un ejemplo de cómo se ve la interfaz. Tenga en cuenta que esta es una captura de pantalla antigua (de crecord en realidad), por lo que la interfaz ha cambiado ligeramente (pero los conceptos básicos son los mismos).
Tenga en cuenta que para obtener esa interfaz necesita la interfaz de curses habilitada. Puede hacerlo para una sola ejecución con
hg commit --config ui.interface=curses --interactive
o en general agregando lo siguiente a su.hgrc
:fuente