version-control mercurial hgignore

version control - ¿Cómo puedo ignorar todo debajo de una carpeta en Mercurial?



version-control hgignore (6)

Alternativamente:

syntax: glob bin/**

Estoy buscando una expresión para el archivo .hgignore, para ignorar todos los archivos debajo de una carpeta especificada.

Por ejemplo: me gustaría ignorar todos los archivos y carpetas debajo del contenedor

En realidad, cualquier consejo sobre cómo se forman las expresiones sería genial


Ambos también filtrarán un directorio llamado cabin , que podría no ser lo que quieres. Si está filtrando el nivel superior, puede usar:

^/bin/

Para directorios bin debajo de su raíz, puede omitir ^. No es necesario especificar la sintaxis, regexp es el valor predeterminado.


Hice algunos experimentos y encontré que la sintaxis de expresiones regulares en Windows se aplica a la ruta que comienza con el repositorio actual, con barras invertidas transformadas en barras diagonales.

Entonces, si su repositorio está en E: / Dev por ejemplo, el hg status aplicará los patrones contra foo / bar / file1.c y demás. Los anclajes se aplican a esta ruta.

Asi que:

  • Glob aplica a elementos de ruta y está enraizado en partes de elementos
  • foo coincide con cualquier carpeta (o archivo) llamada foo (no a "foobar" ni a "barfoo")
  • * foo * coincide con cualquier carpeta o archivo con "foo" en el nombre
  • foo / bar * coincide con todos los archivos en la carpeta "foo" comenzando por "bar"


  • Regex distingue entre mayúsculas y minúsculas, no anclado
  • Por supuesto, los caracteres especiales de la barra invertida regex como. (punto)
  • / matches / path separator en Windows. / no coincide con este separador ...
  • foo coincide con todos los archivos y carpetas con "foo" dentro
  • foo / coincide solo con las carpetas que terminan con "foo"
  • / foo / coincide con la carpeta "foo" en algún lugar de la ruta
  • / foo / bar / coincide con la carpeta "barra" en la carpeta "foo" en algún lugar de la ruta
  • ^ foo coincide con el archivo o carpeta comenzando por foo en la raíz del repositorio
  • foo $ coincide con el archivo que termina con foo

Espero que esto ayude, encontré la página selenic.com/mercurial/hgignore.5.html un poco breve.


No importa, lo tengo

syntax: regexp bin//*

las expresiones siguen la sintaxis estándar de la expresión regular de perl.


ignorar archivos .class

syntax: regexp ?/.class


sintaxis: glob bin / **

Esta respuesta se muestra arriba, sin embargo, también me gustaría agregar que * y ** se manejan de manera diferente. ** es recursivo, * no lo es.

Ver patrones de Hg