Subversion

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

CVS와 같은 버전 관리 서비스인 Subversion에 대한 전반적인 사항을 정리한다.


Subversion 1.6.1 설치 가이드

설치전 사전 준비 사항


Subversion 설치

  • "windows has moved; please try here instead." 에 있는 here 링크 선택
  • "Tigris.org: Apache 2.0 or Apache 2.2"에 있는 Apache 2.2 링크 선택


  • 다운로드한 파일의 압축을 풀어 c:/app/Subversion/ 폴더를 생성 한다.


  • Subversion 사용을 위해 환경 변수를 설정 한다.
PATH 환경 변수에 c:/app/Subversion/bin 추가
###--- 한글 변환 등의 처리를 위해 iconv를 환경 변수에 설정 한다.
APR_ICONV_PATH=c:/app/Subversion/iconv


  • 도스창을 띄워 svnversion --version 명령으로 버전을 확인 한다.
svnversion, 버젼 1.6.1 (r37116)
    Apr 10 2009, 19:06:38에 컴파일 됨

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).


Subversion 저장소 생성

  • 저장소 폴더와 샘플 프로젝트를 생성 한다.
c:/svn_repository 폴더를 생성 한다.
cd c:/svn_repository
svnadmin create --fs-type fsfs sample
  • 프로젝트 접속에 사용할 계정을 생성 한다.
  • 생성된 사용자 계정 정보는 c:/svn_repository/sample/svn_passwd 파일에 저장 된다.
cd c:/svn_repository/sample
$APACHE_HOME/bin/htpasswd -c svn_passwd guest   #--- -c는 svn_passwd 처음 생성시
$APACHE_HOME/bin/htpasswd -m svn_passwd manager #--- -m은 svn_passwd이 있을 경우
  • 참고 문헌

Apache와 연동

Apache HTTP Server와 연동할 경우에 사용 한다.

  • 연동 모듈 복사
  • $SUBVERSION_HOME/bin/mod_dav_svn.so 파일을 $APACHE_HOME/modules 로 복사 한다.
  • $SUBVERSION_HOME/bin/mod_authz_svn.so 파일을 $APACHE_HOME/modules 로 복사 한다.


  • $APACHE_HOME/conf/httpd.conf 파일에 다음을 추가 한후 재기동 한다.
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn/sample>
    DAV svn
    SVNPath "c:/svn_repository/sample" 

    AuthType        Basic
    AuthName        "subversion"
    AuthUserFile    "c:/svn_repository/sample/svn_passwd"

    #등록된 사용자만 읽기 가능.
    <Limit GET PROPFIND OPTIONS REPORT>
        Require     valid-user
    </Limit>

    #등록된 사용자중 특정 사용자만 쓰기 가능토록 설정.
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require     user    manager
    </LimitExcept>
</Location>


  • Apache HTTP Server가 정상적으로 재기동 되지 않을 경우 dll 파일을 복사 한다.
  • $SUBVERSION_HOME/bin/*.dll 파일을 $APACHE_HOME/bin 폴더로 복사 한다.



Subversion Python 모듈 설치

  • Python을 사용할 경우 Subversion Python 모듈을 설치 한다.


  • "windows has moved; please try here instead." 에 있는 here 링크 선택
  • "Tigris.org: Apache 2.0 or Apache 2.2"에 있는 Apache 2.2 링크 선택


  • 다운로드 받은 파일을 실행하여 "다음(N)" 버튼만 눌러 주면 아래 폴더에 설치가 된다.
$PYTHON_HOME/Lib/site-packages/svn


Subclipse 설치

설치 가이드

아래 설치 가이드는 Windows Server 2003을 기준으로 작성한 것 입니다. 설치 환경이 틀릴 경우에는 별도의 주석을 달아 주세요.

설치전 사전 준비 사항


Subversion 설치

  • 다운로드 사이트에서 "Win32 packages built against Apache 2.2"를 선택하여 "svn-1.4.6-setup.exe"을 선택하여 다운로드 한다.
다운로드


  • 설치 파일("svn-1.4.6-setup.exe")을 실행한다.


  • "예"를 선택하여 설치를 시작한다.
설치 시작


  • "Next"를 선택하여 설치를 계속 한다.
설치 계속


  • 제공하는 정보를 읽고 "Next" 버튼을 누른다.
정보 확인


  • 설치할 디렉토리를 선택하고 "Next" 버튼을 누른다.
설치 디렉토리


  • 메뉴 폴더 명을 선택하고 "Next" 버튼을 누른다.
메뉴 폴더


  • 추가 작업을 확인하고 "Next" 버튼을 누른다.
추가 작업


  • "Install" 버튼을 눌러 설치를 진행한다.
설치 진행


  • 추가 설정 정보를 읽고 그대로 작업한 후 "Next" 버튼을 누른다.
  • 환경 변수에 APR_ICONV_PATH=d:/OpenBiz/11_tools/subversion146/iconv 를 추가한다.
추가 설정


  • "Finish" 버튼을 눌러 설치를 종료한다.
설치 종료


Subversion 환경 설정 (Apache 연동)

  • d:/OpenBiz/32_application_data/svnRepo 저장소 폴더를 생성한다.


  • Apache HTTP Server에서 Subversion에서 사용할 사용자 아이디와 암호를 생성한다.
cd d:/OpenBiz/31_application/Apache228/conf
d:/OpenBiz/31_application/Apache228/bin/htpasswd.exe -c htpasswd svnuser
    Automatically using MD5 format.
    New password: ********
    Re-type new password: ********
    Adding password for user svnuser
  • %APACHE_HOME%/conf/htpasswd 파일이 생성된다.
  • "-c" 옵션을 새 파일을 만드는 옵션이므로 이후 실행에서는 "-c" 옵션을 빼고 실행한다.


  • HTTPS를 사용하기 위해 %APACHE_HOME%/conf/httpd.conf에 다음과 같이 설정한다.
  • <VirtualHost *:443>의 맨 아래 부분에 다음을 포함 시킨다.
<Location /svn>
    DAV svn
    SVNParentPath "d:/OpenBiz/32_application_data/svnRepo"

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile "d:/OpenBiz/31_application/Apache228/conf/htpasswd"
    Require valid-user
</Location>
  • SVNParentPath는 각 프로젝트의 저장소 디렉토리가 아닌 그 바로 위의 디렉토리를 뜻합니다. 이렇게 설정하면 https://www.jopenbusiness.com/svn/sample로 접속할 수 있고 sample 대신에 각 프로젝트 저장소 디렉토리 이름으로 접근할 수 있습니다.
  • 프로젝트의 저장소를 바로 지정하려면 SVNPath "d:/OpenBiz/32_application_data/svnRepo/sample"로 설정해야 합니다. 이렇게 설정하면 https://www.jopenbusiness.com/svn/에서 그 저장소의 내용이 표시되게 됩니다.
  • 모든 사용자가 사용할 수 있지만 커밋은 인증된 사용자만 사용하도록 하려면 Require valid-user 대신 아래 부분을 추가하세요.
<LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
</LimitExcept>


  • HTTP를 사용하기 위해 %APACHE_HOME%/conf/httpd.conf에 다음과 같이 설정한다.
  • HTTPS 설정과 동일하면 다만 <VirtualHost *:443> 대신 <VirtualHost *:80>을 사용하면 된다.
<VirtualHost *:80>
    <Location /svn>
        DAV svn
        SVNParentPath "d:/OpenBiz/32_application_data/svnRepo"

        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile "d:/OpenBiz/31_application/Apache228/conf/htpasswd"
        Require valid-user
    </Location>
</VirtualHost>


사용자 가이드

폴더별 의미

  • trunk : 주 개발 작업을 진행하는 폴더
  • branches : 소스의 실험적인 작업을 진행하는 폴더, 차기 버전을 개발할 경우 이 폴더를 이용
  • tags : 릴리즈된 소스를 관리하는 폴더

관리자 가이드

유용한 도구

참고 문헌