Subversion

Server/Debian Linux 2007. 1. 4. 19:47
Subversion
Subversion은 소프트웨어 버전 관리 시스템으로 다음과 같은 장점이 있다.
  • 개발 버전과 릴리즈 버전을 섞이지 않고 쉽게 관리 할 수 있다.
  • 소스를 잘 못 수정 했더라도 기록이 남고 되돌리기가 쉽다.(많은 파일의 경우 유용)
  • 수정, 추가, 삭제 등의 기록이 모두 남고 변경 사항을 추적하기 쉽다.
  • 개발자들이 따로 따로 백업을 하지 않아도 된다.

용어
  • 저장소(Repository) : 모든 프로젝트의 프로그램 소스들은 이 저장소 안에 저장이 된다. 그리고 소스뿐만이 아니라 소스의 변경 사항도 모두 저장된다. 버전 관리 시스템 마다 각각 다른 파일 시스템을 가지고 있으며 Subversion은 Berkeley DB를 사용한다. 한 프로젝트 마다 하나의 저장소가 필요하다.

  • 체크아웃(CheckOut) : 저장소에서 소스를 받아오는 것이다. 체크아웃을 한 소스를 보면 프로그램 소스가 아닌 다른 디렉토리와 파일들이 섞여 있는 것을 볼 수 있다. 이 디렉토리와 파일들은 버전 관리를 위한 파일들이다. 임의로 지우거나 변경하면 저장소와 연결이 되지 않는다.

  • 커밋(Commit) : 체크아웃 한 소스를 수정, 파일 추가, 삭제 등을 한 뒤 저장소에 저장하여 갱신하는 것이다. 커밋을 하면 CVS의 경우 수정한 파일의 리비전이 증가하고 Subversion의 경우 전체 리비전이 1 증가하게 된다.

  • 업데이트(Update) : 체크아웃을 해서 소스를 가져 왔더라도 다른 사람이 커밋을 하여 소스가 달라졌을 것이다. 이럴 경우 업데이트를 하여 저장소에 있는 최신 버전의 소스를 가져온다. 물론 바뀐 부분만 가져옵니다.

  • 리비전(Revision) : 소스 파일등을 수정하여 커밋하게 되면 일정한 규칙에 의해 숫자가 증가한다. 저장소에 저장된 각각의 파일 버전이라 할 수 있다. Subversion의 경우 파일별로 리비전이 매겨지지 않고 한번 커밋 한 것으로 전체 리비전이 매겨진다. 리비전을 보고 프로젝트 진행 상황을 알 수 있다.

  • 임포트(Import) : 아무것도 들어있지 않은 저장소에 맨 처음 소스를 넣는 작업이다.

  • 익스포트(Export) : 체크아웃과는 달리 버전 관리 파일들을 뺀 순수한 소스 파일을 받아올 수 있다. 소스를 압축하여 릴리즈 할 때 사용합니다.

설치 및 설정

1. 설치
# apt-get update
# apt-get install subversion subversion-tools libapache2-svn

2. 저장소 생성
# mkdir /home/svn
# chown www-data /home/svn
# cd /home/svn
# svnadmin create --fs-type bdb /home/svn/sample

- 저장소는 프로젝트마다 하나씩 있어야 한다.
- svnadmin으로 sample 이라는 저장소를 만들면 /home/svc 아래 sample 디렉토리가 생긴다.
- 이 디렉토리 안에는 Subversion이 제어하는 파일들이 들어있다.
- 이 안의 파일들은 Berkeley DB 형식으로 되어 있다.

3. svnserve를 사용한 서버
Subversion의 고유 프로토콜인 svn://을 이용할 수 있는 svnserve를 사용해서 서버 설정을 하여 체크아웃, 커밋 속도를 향상시킨다.
# svnserve -d -r /home/svn/

- svnserve로 서버를 실행시키면 3690번의 포트가 열린다.

4. 사용자 인증
사용자 인증을 위해 다음 파일의 주석을 풀어준다.
# vi /home/svn/sample/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = braintech's Repository

# vi /home/svn/sample/conf/passwd
[users]
userid1 = passwd1
userid2 = passwd2

모든 명령어를 사용할 수 있지만 GUI 클라이언트 프로그램을 사용하여 쉽게 사용할 수도 있다.
(TortoiseSVN, Ankhsvn, RapidSVN 등..)


Tortoise SVN 설치하기
http://tortoisesvn.net/downloads 에 접속하여 최신 버전의 Tortoise SVN을 다운로드 받아 설치하고 탐색기에서 마우스 오른쪽 버튼을 클릭하면 SVN의 모든 메뉴가 나타나서 보다 쉽게 사용할 수 있다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,