Mercurial .hgignore 부정적인 전망대
-
20-09-2019 - |
문제
Mercurial을 사용하면 "Keepers"라는 특정 디렉토리의 파일을 제외한 모든 파일을 무시해야합니다.
사물의 얼굴에서, 이것은 Regex와 부정적인 룩 그가 사용하기 쉬운 것처럼 보였다. 그러나 Regex Buddy 및 기타 도구에서 Regex를 확인할 수 있지만 Tortoisehg에서는 예상대로 작동하지 않습니다.
파일 :
- 정크 junk.txt
- 정크 텍스트
- 골키퍼 테스트 테스트
- 골키퍼 test test2 hi.txt
- Keepersblah.txt
골키퍼의 두 파일 만 무시해서는 안됩니다.
여기에 내가 바랐던 regex가 다음과 같습니다.
^(?!keepers/).+$
유감스럽게도 모든 파일이 무시됩니다. 변경하면 :
^(?!keepers).+$
그것은 당신이 기대하는대로 작동합니다. 즉, 골키퍼로 시작하지 않는 파일/폴더는 무시합니다. 그러나 나는 골키퍼로 시작하는 파일을 무시하고 싶습니다.
기괴하게, 내가 이것으로 바꾸면 :
^(?!keepers/).+\..+$
폴더와 올바르게 일치하지만 확장자가없는 경우 Keepers 폴더에없는 파일을 무시하지 않습니다.
모든 조언에 감사드립니다.
Dead Imageshack 링크 제거
해결책
첫 번째 표현의 문제는 Regex가 "골키퍼"자체에 대해 테스트된다는 것입니다. 이 경우 추가 조건으로 추가 할 수 있습니다.
^(?!keepers(?:/|$))
또는 (덜 컴팩트하지만 이해하기가 더 간단함) :
^(?!keepers/|keepers$)
제휴하지 않습니다 StackOverflow