subversion에서 특정 파일을 ignore시키기 원할 경우에는 아래 명령으로 설정할 수 있다.

svn (propset|propedit) [-R] svn:ignore 디렉토리

전체 디렉토리에 설정하기 위해서는 ~/.subversion/config 파일에서 global-ignores항목을 추가함으로서 설정할 수 있다.

그런데.. 이미 버전관리에 들어간 파일은 아무리 ignore설정을 해도 status나 commit명령 등에서 제외시킬 수가 없다. 이럴 경우에는 해당 파일을 .template 같은 파일명으로 rename시킨 후에 버전 관리를 시키고 원래 파일을 ignore에 설정해서 무시하게 하면 된다.
새로 checkout받은 사용자는 .template파일을 복사해서 사용하면 그 파일은 버전관리에 포함되어 있지 않고 ignore설정에 들어가 있으므로 영향을 받지 않게 된다.

이 문제는 cvs에서 subversion으로 소스들을 옮기면서 Makefile 때문에 발생했었다.
Makefile은 공통으로 사용하고 버전관리도 되야 하지만, 각 사용자 별로 디렉토리 정보 등을 수정해서 사용해야 하기 때문이다. 결국 Makefile을 Makefile.template로 변경해서 commit을 했고 새로 소스를 받은 사람은 Makefile로 복사해서 사용하기로 결정을 했다.

Posted by iamshyu