매뉴얼

파일 및 디렉토리 무시하기

그림 4.33. 버전 관리되지 않는 파일의 탐색기 컨텍스트 메뉴

Explorer context menu for unversioned files


대부분의 프로젝트에서 버전 관리 대상이 아니어야 하는 파일과 폴더가 있을 것입니다. 여기에는 컴파일러가 생성한 파일(*.obj, *.lst)이나 실행 파일을 저장하는 데 사용되는 출력 폴더가 포함될 수 있습니다. 변경 사항을 커밋할 때마다 TortoiseSVN은 버전 관리되지 않는 파일을 표시하여 커밋 대화 상자의 파일 목록을 채웁니다. 물론 이 표시를 끌 수 있지만, 그렇게 하면 새 소스 파일을 추가하는 것을 잊을 수도 있습니다.

이러한 문제를 피하는 가장 좋은 방법은 파생된 파일을 프로젝트의 무시 목록에 추가하는 것입니다. 그렇게 하면 커밋 대화 상자에 표시되지 않지만, 실제 버전 관리되지 않는 소스 파일은 여전히 표시됩니다.

버전 관리되지 않는 단일 파일을 오른쪽 클릭하고 컨텍스트 메뉴에서 TortoiseSVN무시 목록에 추가 명령을 선택하면, 해당 파일만 선택하거나 동일한 확장자를 가진 모든 파일을 선택할 수 있는 하위 메뉴가 나타납니다. 두 하위 메뉴 모두 (재귀적으로)와 동일한 항목을 가지고 있습니다. 여러 파일을 선택하는 경우 하위 메뉴가 없으며 해당 특정 파일/폴더만 추가할 수 있습니다.

무시 컨텍스트 메뉴에서 (재귀적으로) 버전을 선택하면, 해당 항목은 선택한 폴더뿐만 아니라 모든 하위 폴더에 대해서도 무시됩니다. 하지만 이 기능은 SVN 클라이언트 버전 1.8 이상이 필요합니다.

무시 목록에서 하나 이상의 항목을 제거하려면, 해당 항목을 오른쪽 클릭하고 TortoiseSVN무시 목록에서 제거를 선택합니다. 폴더의 svn:ignore 속성에 직접 접근할 수도 있습니다. 이렇게 하면 아래 섹션에 설명된 파일명 전역화(filename globbing)를 사용하여 더 일반적인 패턴을 지정할 수 있습니다. 속성을 직접 설정하는 방법에 대한 자세한 내용은 “프로젝트 설정” 섹션을 참조하십시오. 각 무시 패턴은 별도의 줄에 배치되어야 합니다. 공백으로 구분하는 것은 작동하지 않습니다.

전역 무시 목록

파일을 무시하는 또 다른 방법은 전역 무시 목록에 추가하는 것입니다. 여기서 가장 큰 차이점은 전역 무시 목록이 클라이언트 속성이라는 것입니다. 이는 모든 Subversion 프로젝트에 적용되지만, 클라이언트 PC에서만 적용됩니다. 일반적으로는 가능한 한 svn:ignore 속성을 사용하는 것이 좋습니다. 특정 프로젝트 영역에 적용할 수 있고, 프로젝트를 체크아웃하는 모든 사용자에게 작동하기 때문입니다. 자세한 내용은 “일반 설정” 섹션을 참조하십시오.

버전 관리되는 항목 무시하기

버전 관리되는 파일과 폴더는 절대 무시할 수 없습니다. 이는 Subversion의 기능입니다. 실수로 파일을 버전 관리했다면, “이미 버전 관리된 파일 무시” 섹션을 참조하여 해당 파일을 버전 관리 해제하는 방법을 확인하십시오.

무시 목록의 패턴 매칭

Subversion의 무시 패턴은 파일명 전역화(filename globbing)를 사용합니다. 이는 원래 Unix에서 메타 문자를 와일드카드로 사용하여 파일을 지정하는 데 사용된 기술입니다. 다음 문자는 특별한 의미를 가집니다:

*

빈 문자열(문자 없음)을 포함하여 모든 문자열과 일치합니다.

?

모든 단일 문자와 일치합니다.

[...]

대괄호 안에 포함된 문자 중 하나와 일치합니다. 대괄호 안에서 -로 구분된 두 문자는 두 문자 사이의 사전 순서상 어떤 문자든 일치합니다. 예를 들어 [AGm-p]A, G, m, n, o 또는 p 중 하나와 일치합니다.

패턴 매칭은 대소문자를 구분하며, 이는 Windows에서 문제를 일으킬 수 있습니다. 대소문자를 구분하지 않도록 강제하려면 문자를 짝지어 사용하는 복잡한 방법을 사용할 수 있습니다. 예를 들어, 대소문자 구분 없이 *.tmp를 무시하려면 *.[Tt][Mm][Pp]와 같은 패턴을 사용할 수 있습니다.

전역화(globbing)에 대한 공식 정의를 원한다면, 쉘 명령 언어에 대한 IEEE 사양인 패턴 매칭 표기법 에서 찾을 수 있습니다.

전역 무시 목록에 경로 포함하지 않기

패턴에 경로 정보를 포함해서는 안 됩니다. 패턴 매칭은 일반 파일명과 폴더명에 대해 사용하도록 의도되었습니다. 모든 CVS 폴더를 무시하고 싶다면, 단순히 CVS를 무시 목록에 추가하십시오. 이전 버전에서처럼 CVS */CVS를 지정할 필요가 없습니다. prog 폴더 안에 있을 때는 모든 tmp 폴더를 무시하고 싶지만 doc 폴더 안에서는 무시하고 싶지 않다면, 대신 svn:ignore 속성을 사용해야 합니다. 전역 무시 패턴을 사용해서는 이 목표를 달성할 신뢰할 수 있는 방법이 없습니다.

TortoiseSVN 홈페이지

한국어 中文