Mercurial은 기본적으로 shell-style의 확장형태의 glob 패턴으로 파일명을 인식한다.


아래는 Mercurial에서 지정할 수 있는 여러가지 파일경로 패턴이다.



1. path:

glob 스타일이 아닌 정확한 경로를 지정할 때 사용할 수 있음.

// DIR/FILENAME 하나만을 정확히 지정해서 annotate

C:\rep> hg anno -un path:"DIR/FILENAME"



2. glob:

glob 스타일을 명시적으로 지정.

// 현재 디렉토리의 모든 .c 파일의 annotate

C:\rep> hg anno -unf glob:"*.c"


// 하위 디렉토리까지 포함하여 모든 .c 파일의 annotate

C:\rep> hg anno -unf glob:"**.c"


// 현재 디렉토리 아래에서 lib/php 라는 디렉토리 아래의 모든 .php 파일 annotate

C:\rep> hg anno -unf glob:"**/lib/php/**.php"


// {A,B}는 A 혹은 B라는 뜻으로 지정

// 현재 디렉토리 아래에서 lib/web 디렉토리 아래의 모든 .php 혹은 .js 파일 annotate

C:\rep> hg anno -unf glob:"**/lib/web/**.{php,js}"



3. re:

정규식을 이용

// 어쩌고 저쩌고 lib/web 또는 lib/www 디렉토리 아래의 모든 .php 파일 annotate

C:\rep> hg anno -unf re:".*lib\/(web|www)\/.*\.php$"



4. listfile:

파일패턴을 미리 텍스트 파일에 저장해놓고 명령어 입력시 해당 텍스트파일에서 읽어들이는 방법.

listfile: 과 listfile0: 가 있는데 listfile:은 line delimiter가 line feed일 때, listfile0: 는 line delimiter가 null일 때 사용.


// .hg 디렉토리의 list.txt 라는 파일에 아래처럼 파일패턴 지정

glob:**.php

glob:**.js


// 위에서 지정한 패턴에 매칭되는 파일의 annotate

C:\rep> hg anno -unf listfile:".hg/list.txt"











Posted by bloodguy
,