Subversion(SVN)의 설치와 사용 (Ubuntu Feisty)

1. 설치

apache2와 svn과 apache2에서 svn을 사용하기 위한 모듈을 각각 설치한다.

sudo apt-get install apache2
sudo apt-get install subversion
sudo apt-get install libapache2-svn

이제 프로젝트 저장소(Repository)를 생성한다. 여기서는 tbpcb라는 프로젝트의 저장소를 /home/svn/tbpcb에 생성하는 것을 기준으로 설명한다.

/home/svn# sudo svnadmin create tbpcb
/home/svn# sudo chmod -R g+sw tbpcb
/home/svn# sudo chown -R www-data:www-data tbpcb

svn의 설정파일을 다음과 같이 편집한다. 예제는 아이디와 비밀번호를 통해 인증을 받아야 svn에 접근할 수 있도록 한다.

sudo vi /etc/apache2/mods-available/dav_svn.conf

<Location /svn/tbpcb>
  DAV svn
  SVNPath /home/svn/tbpcb

  AuthType Basic
  AuthName “Subversion Repository”
  AuthUserFile
/etc/apache2/dav_svn.passwd
   
  Require valid-user
</Location>

dav_svn.conf 파일에서 지정한 인증파일(dav_svn.passwd)에 아이디와 비밀번호를 추가하기 위해 htpasswd2를 사용한다. 여기서는 reshout라는 유저의 아이디와 비밀번호를 dav_svn.passwd에 저장한다. 유저를 추가하고 싶다면 -n 옵션을 써서 출력되는 내용을 dav_svn.passwd에 추가해 주면 된다.

/etc/apache2# sudo htpasswd2 -c -m dav_svn.passwd reshout

2. 사용

svn 저장소에 프로젝트를 처음 올릴 때 (import)

svn import -m “Initial Import” src http://192.168.12.12/svn/tbpcb

svn 저장소에서 프로젝트를 처음 받아 올 때 (check out)

svn co http://192.168.12.12/svn/tbpcb src

작업한 내용을 저장소에 반영할 때 (commit)

svn ci

저장소의 변경사항을 내 작업 공간에 반영할 때 (update)

svn up