Al usar Mercurial, necesito ignorar todos los archivos excepto aquellos en un directorio determinado llamado "keepers".Mercurial .hgignore Negative Lookahead
En apariencia, esto parecía fácil usando Regex y Negative Lookahead; sin embargo, aunque puedo verificar mi expresión regular en Regex Buddy y otras herramientas, en TortoiseHg, no funciona como se esperaba.
Archivos:
- chatarra \ junk.txt
- chatarra \ texto
- guardianes \ test \ test
- guardianes \ test \ test2 \ hi.txt
- keepersblah.txt
Solo los dos archivos bajo keepers no deben ser ignorados.
Aquí es la expresión regular que yo esperaba que trabajar:
^(?!keepers/).+$
Lamentablemente, esto hace que todos los archivos a ser ignorados. Si lo cambio a:
^(?!keepers).+$
funciona como era de esperar. Es decir, ignora los archivos/carpetas que no comienzan con keepers. Pero sí quiero ignorar los archivos que comienzan con los guardianes.
Curiosamente, si cambio a esto:
^(?!keepers/).+\..+$
que coincidirá correctamente la carpeta, pero no va a ignorar los archivos que no están en los guardianes de carpetas si no tienen una extensión.
Cualquier consejo sería apreciado.
eliminación de enlace ImageShack muertos
También probé '^ (?! guardianes \ b)', pero eso fallado contra "keepers.txt" – eswald
Brilliant! Muchas gracias, ambos funcionaron perfectamente. He estado golpeándome la cabeza durante una hora :) –
En una afirmación de anticipación no hay necesidad de grupos que no capturan, ya que no se captura de todos modos: '^ (?! keepers (/ | $)). *' – Tomalak