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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top