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