Używając Mercurial, muszę zignorować wszystkie pliki z wyjątkiem tych w określonym katalogu zwanym "keepers".Mercurial .hgignore Negatywne odrzucenie
W obliczu rzeczy, wydawało się to łatwe przy użyciu Regex i Negative Lookahead; jednak, mimo że jestem w stanie zweryfikować moje wyrażenie regularne w Regex Buddy i innych narzędziach, w TortoiseHg, to nie działa zgodnie z oczekiwaniami.
Pliki:
- śmieci \ junk.txt
- śmieci \ tekst
- hodowców \ test \ test
- hodowców \ test \ test2 \ hi.txt
- keepersblah.txt
Tylko dwa pliki pod trzymaczami nie powinny być ignorowane.
Oto regex Mam nadzieję, że działa:
^(?!keepers/).+$
Niestety, powoduje to wszystkie pliki, które mają być ignorowane. Jeśli zmienię to na:
^(?!keepers).+$
działa zgodnie z oczekiwaniami. Oznacza to, że ignoruje pliki/foldery, które nie zaczynają się od przechowujących. Ale chcę ignorować pliki, które zaczynają się od opiekunów.
Bizarrely, jeśli zmienię go w ten sposób:
^(?!keepers/).+\..+$
będzie prawidłowo dopasować folder, ale nie będzie ignorować pliki, które nie są w posiadaczami folder, jeśli nie mają one rozszerzenie.
Każda rada byłaby doceniona.
usuwając martwy link ImageShack
Próbowałem też '^ (?! hodowców \ b)', ale że nie udało się z "keepers.txt" – eswald
Genialny! Dziękuję bardzo, obie działały idealnie. Waliłem w głowę przez godzinę :) –
W przypadku asercji z wyprzedzeniem nie ma potrzeby grup przechwytujących, ponieważ i tak nie są przechwytywane: '^ (?! keepers (/ | $)). * – Tomalak