본문 바로가기

Papyrus/Troubleshooting

svn:ignore 속성을 사용하여 특정 디렉토리와 파일을 무시하기

SVN을 사용할 때, 소스를 빌드할 때마다 동적으로 생성되는 데이터를 소스 트리에 넣고 싶지 않을 때가 있다, 예를 들어, 안드로이드 프로젝트의 bin이나 gen 디렉토리가 그런 종류의 데이터를 포함하고 있는데, 이들을 체크인하는 것은 저장소의 공간 낭비이며 전혀 무의미한 일이다. 이럴 때, svn:ignore 속성을 사용하여 원하는 디렉토리를 관리 대상에서 제외할 수 있다. 즉, 다음의 프로젝트에서 bin과 gen 디렉토리를 무시하고 싶다면,

 

 

project --- trunk --- bin

                      --- gen

 

 

trunk 디렉토리에서 다음과 같은 명령을 입력한다:

 

 

svn propset svn:ignore '*' bin

svn propset svn:ignore '*' gen

 

 

이 속성이 지정되면 bin과 gen 디렉토리의 모든 내용이 무시되는데, 모든 파일 외에도 특정 확장자만 제외할 수도 있으며, 예를 들어 '*.class'와 같은 형식으로 입력하면 된다. 무시할 파일을 명시하는 명령에서 큰 따옴표나 작은 따옴표가 반드시 필요한데, 따옴표를 생략하면 쉘이 이 명령을 잘못 해석하기 때문이다. 또, -R 옵션을 사용하여 해당 디렉토리의 서브 디렉토리에 위의 규칙을 재귀적으로 적용 할 수 있다.

 

svn:ignore 속성이 적용되었다면, SVN은 해당 규칙에 명시된 파일과 디렉토리들을 관리 대상에서 제외한다. svn:ignore 속성을 해제하고 싶다면 svn propdel 명령을 사용하면 된다.