Subversion
둘러보기로 가기
검색하러 가기
CVS와 같은 버전 관리 서비스인 Subversion에 대한 전반적인 사항을 정리한다.
- CollabNet Subversion 홈페이지 : http://subversion.open.collab.net/
- CollabNet Subversion 다운로드 : http://www.collab.net/downloads/subversion/
- 라이센스 : Subversion License
- 플랫폼 : Windows, Unix, Linux, Mac OS X
목차
Subversion 1.6.1 설치 가이드
설치전 사전 준비 사항
Subversion 설치
- 다운로드 사이트에서 svn-win32-1.6.1.zip 파일을 다운로드 한다.
- "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 폴더로 복사 한다.
- http://localhost/svn/sample/ 로 접속하여 사용 한다.
Subversion Python 모듈 설치
- Python을 사용할 경우 Subversion Python 모듈을 설치 한다.
- 다운로드 사이트에서 svn-python-1.6.1.win32-py2.5.exe 파일을 다운로드 한다.
- "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" 버튼을 누른다.
- "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 : 릴리즈된 소스를 관리하는 폴더
관리자 가이드
유용한 도구
- TortoiseSVN
- VisualSVN
- Subclipse : Eclipse용 Subversion Plugin