본문 바로가기

모바일&IT/개발관련자료

Eclipse에서 Subversion을 사용하는 방법 (한글) SVN사용법

SMALL

Subclipse는 Subversion 지원을 Eclipse IDE에 추가하는 프로젝트이다. 우리는 Eclipse의 업데이트 매니저를 사용하여 Subclipse를 우리의 Eclipse IDE에 추가할 것이다. Eclipse의 Help 메뉴에서 Software Updates > Find and Install을 선택하여 업데이트 매니저를 연다.


그림 1. Eclipse 업데이트 매니저
 



소프트웨어 업데이트를 검색하기 위해 사용하는 것 외에도, 이 업데이트 매니저를 사용하여 Subclipse 같은 새로운 기능을 찾아서 설치할 수 있다. Search for new features to install이 선택되었는지 확인하고, Next를 클릭하여 계속 진행한다. Eclipse는 다음의 업데이트 매니저 패널을 디스플레이 한다.


그림 2. 업데이트 매니저 사이트
업데이트 매니저 사이트

측정 기능을 찾았기 때문에, 기존 사이트의 체크를 해제하고, New Remote Site를 클릭하여 New Update Site 다이얼로그를 디스플레이 한다. (그림 3) 이것을 사용하여 Subclipse 업데이트 사이트를 리스트에 추가할 것이다.


그림 3. 새로운 업데이트 사이트 추가하기
새로운 업데이트 사이트 추가하기

Name에 알맞은 것을 입력하고(Subclipse가 적당하다.), URL에 http://subclipse.tigris.org/update_1.0.x (현재 Subclipse 업데이트 사이트)를 입력한다. OK를 클릭하여 Subclipse 업데이트 사이트를 업데이트 매니저의 리스트에 추가한다.

업데이트 매니저 창에 Finish를 클릭하여 새로운 기능을 검색한다. 이 경우, 우리가 찾고 있는 새로운 기능은 Subclipse이다. 잠시 후에, 업데이트 매니저의 검색이 완료되고, 검색 결과가 디스플레이 된다.


그림 4. 설치할 새로운 기능
설치할 새로운 기능

Subclipse를 체크하고(닫힌 삼각형을 클릭하여 이 기능에 정확이 무엇이 포함되었는지를 볼 수 있다.), Next를 클릭하여 기능의 라이센스 조건을 검색한다. 조건을 수락하고, Next를 클릭하여 여러분이 선택했던 기능을 검토한다. Finish를 클릭하여 Subclipse를 다운로드 및 설치한다.

업데이트 매니저는 Subversion 컴포넌트를 다운로드 한다. 설치하기 전에, Eclipse는 이 기능들이 디지털 서명이 되지 않았음을 경고할 것이다. (그림 5) 이것이 설치를 취소할 수 있는 마지막 기회이다. Install All을 클릭하여 설치를 계속 진행한다.


그림 5. Subclipse가 디지털 서명 되지 않았다.
Subclipse가 디지털 서명 되지 않았다.

Subversion이 설치되면, Eclipse는 IDE를 재시작 하여 새로운 기능을 활성화 해야 한다고 경고한다. (그림 6) Eclipse를 바로 재시작 한다.


그림 6. 새로운 기능 설치 후에 Eclipse 재시작 하기
새로운 기능 설치 후에 Eclipse 재시작 하기

Eclipse를 재시작 하면, Subclipse가 설치되고 준비가 된다.

Mac OS X나 리눅스®에서 Eclipse를 실행한다면, JavaHL 라이브러리를 설치해야 하는데, 이것은 Subclipse FAQ의 Troubleshooting 섹션에 설명되어 있다. (참고자료) Subclipse를 사용하기 전에 이를 수행해야 한다.

빠른 테스트

설치를 완료하면 새로운 기능을 테스트 하는 것이 좋다. Subversion 저장소에서 Subclipse 카피를 체크하여 이것이 올바르게 설치되었는지를 확인한다.

Eclipse File 메뉴에서, Import를 선택하여 Import 매니저를 디스플레이 한다. (그림 7) SVN에서 Checkout Projects를 선택하고, Next를 클릭한다.


그림 7. Import 매니저
Import 매니저

Select/Create Location 패널에서(그림 8), 새로운 위치를 만들고(아직 아무것도 설정하지 않았기 때문이다.), Next를 클릭하여 계속 진행한다. Next 버튼이 활성화 되지 않으면, Use existing repository location 옵션으로 전환하여, Create a new repository location으로 가서 Next 버튼을 실행한다.


그림 8. 새로운 저장소 위치 만들기
새로운 저장소 위치 만들기

다음 섹션에서(그림 9), 저장소 URL(http://subclipse.tigris.org/svn/subclipse/)을 Url 필드에 추가하고, Next를 클릭한다. 잠시 후에, Eclipse는 사용자 ID와 패스워드를 묻는다. Subclipse 사이트에 대한 계정이 없다면, ID에는 guest를 패스워드는 공백으로 하고, Save Password 박스를 체크하고 OK를 클릭한다.


그림 9. 저장소 URL 추가하기
저장소 URL 추가하기

Eclipse는 Subclipse 저장소에 폴더들을 디스플레이 한다. (그림 10) 트렁크를 확장하고, subclipse 폴더를 선택한 다음, Finish를 클릭하여 Subclipse 프로젝트의 소스 코드의 카피를 체크한다. 이것이 무엇인지 모르기 때문에, New Project 마법사가 뜨면 Simple > Project를 선택한다.


그림 10. Subclipse 저장소
Subclipse 저장소


기본적인 Subversion 연산

Subclipse를 성공적으로 설치했고, Subversion 서버용 지원을 Eclipse 설정에 추가했으며, 저장소에서 현재의 Subclipse 소스 코드를 다운로드 함으로써 Subclipse를 테스트 했다. 이제, 코드와 Subversion 저장소가 어떻게 실행되는지를 보자.

Subversion 작동 방법을 보기 전에, 저장소에 대해 잠깐 이야기 해보자. 이것은 port 8000에 dogma라고 하는 머신에 호스팅 되었으며, 필자는 필자의 developerWorks 기술자료와 연결된 새로운 developerWorks 코드용 저장소를 만들었다. 필자의 프로젝트를 직접 저장소의 루트에 놓을 것이다. 기타 저장소들은 개발 버전, 태그 브랜치에 맞게 trunk, tags, branches 라는 이름의 폴더를 갖지만, developerWorks 기술자료 코드를 태깅 또는 브랜칭 할 염려는 없다.

필자는 필자의 첫 번째 기술자료에서 두 개의 프로젝트, forkWork과 threadWork을 추가했다. 필자의 Eclipse 워크스페이스(그림 11)에는 developerWorks 기술자료에서 온 세 개의 다른 프로젝트들도 포함되어 있다. (getopt_demo, getopt_long_demo, readdir_demo).


그림 11. 나의 Eclipse C/C++ 프로젝트
나의 Eclipse C/C++ 프로젝트

이제 실행을 시작해 보자.

프로젝트를 저장소에 추가하기

새로운 프로젝트를 Subversion 저장소에 추가하려면, 프로젝트를 오른쪽 클릭하고(Eclipse의 프로젝트 뷰 또는 Navigator 뷰), 메뉴에서 Team > Share Project를 선택한다. Eclipse는 Share Project 다이얼로그를 디스플레이 한다.


그림 12. Share Project 다이얼로그
Share Project 다이얼로그

현재 Eclipse에서 지원되는 저장소 리스트에서 SVN을 선택하고 Next를 클릭한다. 다음 다이얼로그(그림 13)에서는 기존 저장소 위치를 선택하거나, 새로운 위치를 만들 수 있다.


그림 13. 저장소 위치 선택하기
저장소 위치 선택하기

저장소가 이미 리스팅 되었다면, 이것을 선택하고, Finish를 클릭한다. 저장소가 리스팅 되지 않았다면, 추가한 후 계속 진행한다. (빠른 테스트 참조) Eclipse는 프로젝트와 같은 이름으로 저장소에 새로운 디렉토리를 만들고, 프로젝트에 모든 파일과 폴더 리스트를 디스플레이 한다.


그림 14. 프로젝트 콘텐트 추가하기
프로젝트 콘텐트 추가하기

위 영역에 프로젝트를 설명하는 알맞은 코멘트를 입력한 다음, Select All을 클릭하여 프로젝트에서 모든 파일들을 체크한다. OK를 클릭하여 프로젝트에 체크하고, 현재 상태를 Subversion 저장소로 보낸다.

Subversion의 명령어와 아웃풋이 Console 뷰에 디스플레이 되는데, 주로 Eclipse 윈도우 아래에 보인다. 프로젝트에 Subclipse가 정확히 무엇을 하는지 알 수 있다.

프로젝트 업데이트

버전 관리 시스템의 핵심적인 기능 중 하나는 다른 개발자들이 개발을 진행하면서, 준비가 될 때마다 변경할 수 있는 기능이다. 변경 사항을 다운로드 하여, 로컬 카피에 통합시키려면, 프로젝트를 업데이트 해야 한다.

업데이트 하고자 하는 프로젝트를 오른쪽 클릭하고, 메뉴에서 Team > Update를 선택한다. Eclipse는 저장소에서 변경 사항을 검색하고, 로컬 카피와의 합병을 시도한다.

파일 또는 디렉토리 추가하기

파일을 프로젝트에 추가하면(그림 15), 이것은 버전 관리의 일부가 자동으로 되는 것이 아니다. 구체적으로 이것을 저장소에 추가해야 한다. 스크린샷을 보면, 필자가 ReadMe.txt 파일을 threadWork 프로젝트에 추가했음을 알 수 있다.


그림 15. 새로운 파일 추가하기
새로운 파일 추가하기

새로운 파일을 추가한 다음, Team > Add to Version Control을 선택한다. 이것이 전부이다. 다음에 이 프로젝트에서 저장소에 변경 사항이 이루어지면, 새로운 파일이 추가된다.

파일 또는 디렉토리 삭제하기

프로젝트와 더 이상 관련이 없는 저장소에 파일을 추가했다면, 쉽게 삭제할 수 있다. 파일을 오른쪽 클릭한 후에 Delete를 선택한다. Team 메뉴가 필요 없으며, Subclipse가 파일에 자동으로 삭제 플래그를 달며, 이것을 프로젝트로부터 삭제한다. 다음에 저장소에 변경 사항을 만들면, 파일이 삭제된다.

파일 또는 디렉토리의 재명명

Subclipse의 컨트롤 아래에 있는 파일 또는 디렉토리를 재명명 하려면, 오른쪽 클릭을 하고, Rename을 선택한다. 엔트리 필드에 아이템의 새로운 이름을 입력하고 Enter를 클릭한다. 파일이 프로젝트에서 재명명 되고, rename 연산(새로운 이름에는 Add, 오래된 이름에는 Delete)은 다음 실행을 위해 대기한다. 그림 16은, main.c를 threadWork.c로 바꾼 후에 threadWork 프로젝트 모습이며, 아직 변경 사항을 실행하기 전이다. 작은 파란색 더하기 부호는 Subclipse가 새로운 파일을 추가했음을 나타낸다.


그림 16. 추가 또는 삭제인 경우에도 파일 재명명은 기본이다.
추가 또는 삭제인 경우에도 파일 재명명은 기본이다.

파일 무시하기

프로젝트가 파일을 만들거나, Subversion 저장소에 추가하고 싶지 않은 파일을 포함하고 있을 경우, Subclipse에 이를 무시하도록 명령할 수 있다. 버전 관리에서 배제하고자 하는 파일이나 디렉토리를 오른쪽 클릭한 다음, Team > Add to svn:ignore를 선택하여 Add to svn:ignore 다이얼로그를 디스플레이 한다.


그림 17. 버전 관리에 포함시키고 싶지 않은 리소스 무시하기
버전 관리에 포함시키고 싶지 않은 리소스 무시하기

OK를 클릭하여 특정 파일을 프로젝트의 디렉토리용 svn:ignore 프로퍼티에 추가한다. Wildcard extension을 선택하여 현재 파일의 확장자를 가진 모든 파일들을 무시하거나, Custom pattern을 선택하여 고유의 와일드 카드를 추가하여 리스트를 무시한다. 무시 리스트에 이루어진 변경 사항은 다음에 변경 사항을 실행할 때 저장소에 추가된다.

변경 사항 실행하기

프로젝트를 변경 했다면, 코드 컴파일, 변경 사항 테스트를 실행하고, Subversion 저장소에 이를 위임해야 한다. 이것은 워크스테이션 자가 삭제의 경우 백업으로서 작동하고, 다른 개발자들이 로컬 카피들을 업데이트 하여 변경 사항을 포함시키도록 할 수 있다.

변경 사항을 실행하기 전에 프로젝트를 업데이트 하라. ("프로젝트 업데이트" 참조) 프로젝트를 오른쪽 클릭하고 메뉴에서 Team > Commit을 선택한다. Eclipse는 Commit 다이얼로그를 디스플레이 하는데(그림 18), 여기에는 변경 사항이 요약되어 있다.


그림 18. 저장소에 변경 사항 실행하기
저장소에 변경 사항 실행하기

주의 깊게 살펴본다면, 프로퍼티 디렉토리에 프로퍼티 변화가 있었고(svn:ignore 프로퍼티를 추가하여 저장소에서 특정 파일들을 배제했다.), threadWork.c가 추가되면서 main.c가 삭제되었다. 이러한 변화 쌍들은 실제로 하나의 연산을 나타낸다. (파일 재명명)

저장소에서 빼고 싶다면, 리소스를 선택하지 않을 수 있다. 하나의 파일에서 작업을 부분적으로 마쳤고, 미완 변경 사항을 추가하고 싶지 않을 경우에 유용하다. 위 텍스트 필드에 알맞은 코멘트를 입력한 다음, OK를 클릭하여 변경 사항을 저장소에 추가한다.

LIST