SVN 이클립스 Subversion에서 svn:ignore 활용

황제낙엽 2009.02.09 13:26 조회 수 : 266 추천:81

sitelink1  
sitelink2  
sitelink3  
http://ww.powerjava.net/blog/soulcarta/entry/이클립스-Subversion에서-svnignore-활용?TSSESSIONpowerjavanetblog=75adb6ed5c938fce399309c343199c1bSubversion을 이용해 형상관리를 하는 경우 매번 문제가 발생하는 부분이
버젼관리가 안되야 할 파일들이 버젼관리되면서 충돌이 발생하는 경우다.
대표적인 문제파일들은 .classpath와 같은 개인별로 다를수밖에 없는 설정파일이라든가
이미지폴더내의 Thumb.db파일등이다.

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

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

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

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

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

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

그림설명) 현재 버전관리되고 있는 test.txt파일을 버전관리에서 제외하는 작업을 진행해 보자. 현재 상태에서는 마우스 오르버튼에 Team > Add to svn:ignore 명령이 비활성화되어있어  바로 ignore설정을 할수 없다.
User image

2. ignore할 파일을 SVN Repository에서 삭제한다.
그림설명) SVN Repository뷰에서 프로젝트내의 해당 test.txt파일을 삭제한다.
User image

3. 로컬에서 해당 파일을 백업받아두고 update를 받아서 해당 파일을 삭제한다.
그림설명) 업데이트를 받으면 해당 파일이 삭제된다
User image

4. 다시 해당 파일을 작성하거나 백업받아둔 파일을 넣고 Team > Add to svn:ignore 를 통해 ignore 파일로 설정한후 Repository에 Commit을 통해 반영한다
User image
===> 이제 해당 파일에 Add Add to svn:ignore 메뉴가 활성화된다. ignore에 등록되면 이제 해당 파일은 버젼관리에서 제외된다.