ignorando carpetas en mercurial
-
08-07-2019 - |
Pregunta
Advertencia:
Intento todas las posibilidades enumeradas aquí: ¿Cómo puedo ignorarlo? todo debajo de una carpeta en Mercurial .
Ninguno funciona como espero.
Quiero ignorar todo lo que se encuentra en la carpeta test
. 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\\*
Instalé TortoiseHG 0.4rc2 con Mercurial-626cb86a6523 + tortoisehg, Python-2.5.1, PyGTK-2.10.6, GTK-2.10.11 en Windows
Solución
Pruébelo sin la barra después del símbolo de intercalación en la versión regexp.
^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 ignoreme no se muestra y dont-ignore sí.
Otros consejos
Puede usar aserciones negativas de anticipación y retrospectiva de ancho cero para especificar que desea ignorar test
solo cuando no está precedido por srcProject
y no se sigue por TestManager
:
syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)
Mercurial usa expresiones regulares de Python, por lo que puede encontrar más información sobre aserciones de ancho cero en los documentos de Python: https://docs.python.org/library/re.html#regular-expression-syntax
Ambos casos funcionaron para mí (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 no está rastreando actualmente , que son los que se agregaron antes de configurarlo para ignorarlos. Por lo tanto, no se desanime por el estado hg diciendo que algunos archivados son M (modificado) o! (falta) en las carpetas que acaba de agregar a la lista de ignorados
Crear archivo .hgignore en el directorio raíz del repositorio
Ahora agregue los siguientes contenidos en el archivo.
sintaxis: glob
bin / **
* .DS_Store
Esto eliminará el directorio bin y todos los archivos * .DS_Store del repositorio