ALL ABOUT ME

Eclipse :: svn ignore 처리 방법 본문

Lab

Eclipse :: svn ignore 처리 방법

threeword 2012. 4. 13. 13:36

Subversion을 이용해 형상관리를 하는 경우 매번 문제가 발생하는 부분이 
버젼관리가 안되야 할 파일들이 버젼관리되면서 충돌이 발생하는 경우다.
대표적인 문제파일들은 .classpath나 .flexProperties 같은 개인별로 다를수밖에 없는 설정파일이라든가 
폴더내의 .DS_Store나 Thumb.db파일등이다.

우선 기본적으로는 프로젝트 초기에 이런 버젼관리 하지 않을 파일들을 svn:ignore에 등록을
해두는게 중요하다.  그런데 현실적으로는 초기에 이런 부분을 지나치고 개발을 진행하다 문제가 발생하게 되는데 이때는 깔끔하게 해결 할 수 있는 방법을 찾기 힘들다는데 문제의 심각성이 있다.

아무튼 이런 부분에 대해서 총괄적으로 정리를 해보자.

1. 이클립스 전체 설정
우선 이클립스에서 프로젝트에 상관없이 버젼관리를 하지 않아야할 파일들을 전체적으로 설정할 수 있다.
Window > Preference > Team > Ignored Resources에 버젼관리에 포함되지 않을 
파일 패턴을 정의해 두면 이런 파일들은 버젼관리에서 제외된다.
예를 들어 *.bak이나 Thumb.db 파일처럼 전체적으로 버젼관리에서 제외되어야 할 파일이나 패턴을 정의해두게 된다.
나 같은 경우는 .*를 지정하고 있다.


2. 프로젝트별 개별 설정
프로젝트별로 ignore파일을 설정할때는 svn:ignore속성을 이용하게 된다.
우선 아직 버젼관리가 되지 않은 파일의 경우에는 Team > Add to svn:ignore 를 선택하면 해당 파일이나 폴더는 버젼관리에서 제외된다.

3. 이미 버젼관리 되고 있는 파일에 대한 ignore 처리
이게 상당히 까다로운 부분인데 이 부분을 이클립스에서 한번에 처리할 수 있는 기능은 찾질 못했다. 현재 이걸 해결할 수 있는 방법은 SVN Repository에서 해당 파일을 삭제하고 로컬에서 업데이트를 받아 해당 파일이 삭제된후 다시 파일을 추가해 그 파일을 Team > Add tosvn:ignore 를 통해 설정하는 방법이다. (이 방법외에 더 깔끔한 벙법이 있으신분 알려주시면 감사하겠습니다)

<작업 순서 예시>
1. 동기화 작업 진행(다른 파일들과 함께 commit이나 update 하지 않도록 소스 정리)

2. ignore할 파일을 SVN Repository에서 삭제한다.

3. 로컬에서 해당 파일을 백업받아두고 update를 받아서 해당 파일을 삭제한다.

4. 다시 해당 파일을 작성하거나 백업받아둔 파일을 넣고 Team > Add to svn:ignore 를 통해 ignore 파일로 설정한후 Repository에 Commit을 통해 반영한다

Comments