[version-control] Mercurial의 폴더 아래에있는 모든 것을 어떻게 무시할 수 있습니까?

지정된 폴더 아래의 모든 파일을 무시하기 위해 .hgignore 파일에 대한 표현식을 찾고 있습니다.

예 : bin 아래의 모든 파일과 폴더를 무시하고 싶습니다.

실제로 표현이 어떻게 형성되는지에 대한 조언은 훌륭합니다.



답변

번갈아:

syntax: glob
bin/**


답변

몇 가지 실험을했는데 Windows의 정규 표현식 구문이 현재 저장소로 시작하는 경로에 적용되며 백 슬래시는 슬래시로 변환됩니다.

예를 들어 리포지토리가 E : \ Dev에 있으면 hg statusfoo / bar / file1.c 등에 패턴을 적용합니다. 앵커는이 경로에 적용됩니다.

그래서:

  • Glob은 경로 요소에 적용되며 요소 부분에 뿌리
  • foo는 foo라는 이름의 폴더 (또는 파일)와 일치합니다 ( “foobar”나 “barfoo”가 아님)
  • * foo *는 이름에 “foo”가있는 모든 폴더 또는 파일과 일치합니다.
  • foo / bar *는 “bar”로 시작하는 “foo”폴더의 모든 파일과 일치합니다.

  • 정규식은 대소 문자를 구분하며 고정되지 않습니다.
  • 물론 백 슬래시 정규 표현식 특수 문자는와 같습니다. (점)
  • /는 Windows의 \ 경로 구분 기호와 일치합니다. \이 구분 기호와 일치하지 않습니다 …
  • foo는 내부에 “foo”가있는 모든 파일 및 폴더와 일치합니다.
  • foo /는 “foo”로 끝나는 폴더와 만 일치합니다
  • / foo /는 경로의 “foo”폴더와 일치합니다.
  • / foo / bar /는 경로의 “foo”폴더에있는 “bar”폴더와 일치합니다.
  • ^ foo는 저장소 루트에서 foo로 시작하는 파일 또는 폴더와 일치합니다.
  • foo $는 foo로 끝나는 파일과 일치합니다

이것이 도움이되기를 바랍니다 .HGIGNORE (5) 페이지가 간결 하다는 것을 알았습니다 .


답변

둘 다라는 디렉토리를 필터링하여 원하는 디렉토리 cabin가 아닐 수도 있습니다. 최상위 수준을 필터링하는 경우 다음을 사용할 수 있습니다.

^/bin/

들어 bin루트 아래에있는 디렉토리, 당신은 ^를 생략 할 수 있습니다. 구문을 지정할 필요가 없으며 regexp가 기본값입니다.


답변

신경 쓰지 마

syntax: regexp
bin\\*

표현식은 표준 perl 정규 표현식 구문을 따릅니다.


답변

구문 : glob bin / **

이 답변은 위에 표시되어 있지만 *와 **는 다르게 처리된다는 점을 추가하고 싶습니다. **는 재귀 적이며 *는 아닙니다.

Hg 패턴 참조


답변

.class 파일을 무시하려면

syntax: regexp
?\.class


답변