regex mercurial hgignore ignore-files

regex - ignorando carpetas en mercurial



hgignore ignore-files (4)

Advertencia: pruebo todas las posibilidades enumeradas aquí: ¿Cómo puedo ignorar todo lo que hay debajo de una carpeta en Mercurial ?
Ninguno funciona como espero.

Quiero ignorar todo en la test la carpeta. Pero no ignore srcProject/test/TestManager

lo intento

syntax: glob test/**

E ignora test y srcProject/test/TestManager

Con:

syntax: regexp ^/test/

Es lo mismo.

También con:

syntax: regexp test//*

He instalado TortoiseHG 0.4rc2 con Mercurial-626cb86a6523 + tortoisehg, Python-2.5.1, PyGTK-2.10.6, GTK-2.10.11 en Windows


Pruébalo sin la barra después del símbolo de intercalación en la versión de expresiones regulares.

^test/

Aquí hay una prueba:

~$ mkdir hg-folder-ignore ~$ cd hg-folder-ignore ~/hg-folder-ignore$ echo ''^test/'' > .hgignore ~/hg-folder-ignore$ hg init ~/hg-folder-ignore$ mkdir test ~/hg-folder-ignore$ touch test/ignoreme ~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager ~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore ~/hg-folder-ignore$ hg stat ? .hgignore ? srcProject/test/TestManager/dont-ignore

Tenga en cuenta que ignore no se está mostrando y dont-ignore es.


Ambos casos me funcionaron (en Linux y Windows):

syntax: regexp ^backup/ #root folder nbproject/ #any folder

o

syntax: glob ./backup/* #root folder nbproject/* #any folder

Sin embargo, no fue antes de agregar un enlace al archivo .hgignore al archivo .hgrc en mi repositorio:

[ui] ignore = .hg/.hgignore

También vale la pena mencionar que mercurial ignora los archivos que actualmente no está rastreando , que son los que se agregaron antes de configurarlo para ignorarlos. Por lo tanto, no se deje intimidar por el estado de hg diciendo que algunos archivados son M (modificado) o! (falta) en las carpetas que acaba de agregar a la lista de ignorar!


Puede usar aserciones negativas de mirar hacia atrás de cero ancho y mirar hacia atrás para especificar que desea ignorar la test solo cuando no está precedida por srcProject y no seguido por TestManager :

syntax: regexp (?<!srcProject//)test//(?!TestManager)

Mercurial usa expresiones regulares de Python, por lo que puede encontrar más información sobre las aserciones de ancho cero en los documentos de Python: https://docs.python.org/library/re.html#regular-expression-syntax


Crear archivo .hgignore en el directorio raíz del repositorio

Ahora agregue los siguientes contenidos en el archivo.

sintaxis: glob

compartimiento/**

* .DS_Store

Esto eliminará el directorio bin y todos los archivos * .DS_Store del repositorio