Pregunta

¿Hay alguna forma de ignorar los cambios en algunos archivos en un comprometerse con mercurio?

Tengo una situación específica en la que tenemos un archivo tnsnames.ora de Oracle por defecto que apunta a 127.0.0.1, pero algunos desarrolladores a modificarlo para que apunte a otros sistemas, pero no quiero cambiar el archivo predeterminado .

En la subversión, he añadido este sencillo a la lista de cambios ignore-on-commit. ¿Hay una manera de hacer esto en mercurial?

¿Fue útil?

Solución

Si los archivos que desea omitir de la orden "hg commit" ya están "seguimiento", se debe utilizar la opción -X. El patrón pasado a -X es bastante flexibles, por lo que es posible ejecutar por ejemplo:

% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'

para evitar cometer cualquier archivo con la extensión ".conf", independientemente de la profundidad en el árbol de fuentes que vive. En el espacio de trabajo se muestra por encima de este cometerían "src / bar.c" y "lib / libbar / loader.c", pero no "etc / foo.conf".

Para excluir varios patrones de nombres de archivo, utilice múltiples opciones -X, es decir:.

% hg commit -X '**.conf' -X '**.sh'

Otros consejos

Tradicionalmente, esto se resuelve por no versiones del archivo en sí, sino por versiones de una copia del mismo como una plantilla para que otros utilicen.

Así que tendría hg mv tnsnames.ora tnsnames.ora-template, a continuación, confirmar, y luego hacer una copia del sistema de archivos recta de tnsnames.ora-plantilla para tnsnames.ora, y añadir el archivo tnsnames.ora a .hgignore.

Los cambios posteriores en la plantilla todavía sea empujada hacia fuera, pero no van a cambiar realmente el ambiente de trabajo menos que alguien copia la plantilla para el archivo real.

Se podría alias de comprometerse a algo así como 'hg commit excluded_file.ext -X' nunca he utilizado mercurial, así que sólo voy por la página del manual aquí.

Busque .hgignore archivo en la documentación de Mercurial.

Aquí está un ejemplo de archivo de ignorar.

       # use glob syntax.
       syntax: glob

       *.elc
       *.pyc
       *~

       # switch to regexp syntax.
       syntax: regexp
       ^\.pc/
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top