[OS]/Embedded&Linux

svn-howto

하늘을닮은호수M 2007. 8. 15. 22:44
반응형
<!> 이 문서의 저작권은 PYRASIS에게 있고 무단도용시 법적 제재를 받을 수 있습니다. 복사, 재배포, 게시하고자 하는 경우 비 상업적 용도로만 사용이 가능하고, 출처와 작성자를 정확히 밝혀야 하며 원본을 변형해서는 안됩니다.
<!> 번역 문서로 알고 계신 분이 많은데 번역 문서가 아니고 제가 작성한 것입니다.
<!> 윈도우에서 서버를 구성하고자 하시는 분들은 윈도우에서 Subversion 서버 운영하기 문서를 참고하세요.
<!> 참고 : "CVS에서 Subversion으로 바꾸기, 좋을까"에 대한 반박


Subversion 사용 HOWTO

이재홍 http://www.pyrasis.com 2003.11.14 ~ 2007.2.28 버전 1.4.1


CVS의 단점들을 개선한 버전 관리 시스템인 Subversion을 이용하여 프로그램의 소스 코드를 관리하는 방법과 유닉스, 리눅스 및 Windows에서 Subversion을 설치해보고 사용하는 방법을 설명합니다.

목차

1 소프트웨어 버전 관리의 이해
1.1 버전 관리 시스템의 필요성
1.2 버전 관리 시스템의 종류
1.3 버전 관리 시스템의 용어들
1.4 저장소의 디렉토리 배치
2 Subversion
2.1 CVS와 비교한 Subversion의 장점들
2.2 설치 준비 작업
2.3 사용 할 각각의 파일들 구하기
3 설치하기
3.1 OpenSSL 컴파일과 설치
3.2 Berkeley DB 컴파일과 설치
3.3 Apache 컴파일과 설치
3.4 Subversion 컴파일과 설치
4 세부 설정
4.1 저장소 만들기
4.1.1 공동 작업을 위한 저장소 그룹 설정
4.2 Apache 설정
4.2.1 Apache에서 ID로 사용자 인증
4.3 svnserve를 사용한 서버
4.3.1 svnserve에서 ID로 사용자 인증
4.4 SSH + svnserve 서버
5 실제로 사용하기
5.1 에디터 설정
5.2 기본 디렉토리 만들기
5.3 Import
5.4 Checkout
5.5 Update
5.6 Commit
5.7 Log
5.8 Diff
5.9 Blame
5.10 lock
5.11 Add
5.12 Export
5.13 Branch와 Tag
5.13.1 Branch
5.13.1.1 Merge
5.13.2 Tag
5.14 Revert
5.15 백업 및 복구
5.15.1 Dump
5.15.2 Load
5.16 svnsync
6 Microsoft Windows에서 사용하기
6.1 설치 파일 구하기
6.2 설치
6.3 사용하기
7 운영체제별 전용 패키지
8 GUI 클라이언트 프로그램
8.1 TortoiseSVN
8.2 Ankhsvn
8.3 RapidSVN
9 웹 인터페이스
9.1 ViewVC
9.2 WebSVN


1 소프트웨어 버전 관리의 이해 #

Subversion은 소프트웨어 버전 관리 시스템입니다. 이전에 CVS같은 역사가 깊은 소프트웨어 버전 관리 시스템을 사용해 본 경험이 있다면 쉽게 진행 할 수 있을 것입니다. 이 장에서는 소프트웨어 버전 관리 시스템을 처음 접하는 분들을 위해 자주 나오는 용어들과 개념을 정리 하였습니다.

1.1 버전 관리 시스템의 필요성 #

과연 소프트웨어를 만드는데 버전관리가 왜 필요할까요? 버전 관리가 필요하게 된 이유는 공동 작업 때문입니다. 한사람이 큰 프로젝트를 진행 하는 것이 아니기 때문에 버전 관리 시스템이 필요 하게 되었습니다.

버전 관리 프로그램을 사용하게 되면 다음과 같은 장점이 있습니다.
  • 개발 버전과 릴리즈 버전을 섞이지 않고 쉽게 관리 할 수 있습니다.
  • 소스를 잘 못 수정 했더라도 기록이 남고 되돌리기가 쉽습니다.(많은 파일의 경우 유용)
  • 수정, 추가, 삭제 등의 기록이 모두 남고 변경 사항을 추적하기 쉽습니다.
  • 개발자들이 따로 따로 백업을 하지 않아도 됩니다.

가장 유용한 장점은 아무래도 잘못 수정한 소스를 쉽게 되돌릴 수 있다는 것입니다. 프로젝트가 커지다보면 소스가 꼬이게 되고 골치 아픈 상황이 한두 번 발생하는 것이 아니죠. 그리고 변경 사항이 모두 기록되고 무엇을 변경 했는지 쉽게 볼 수 있습니다. 옆 사람이 수정한 것을 쉽게 볼 수 있습니다. 그리고 가장 큰 문제를 일으키는 백업을 하지 않아 소스를 분실하는 최악의 상황도 쉽게 해결 됩니다.

장점을 나열하자면 더 많습니다만 단점을 이야기 하자면 아무래도 프로그램 개발자들이 소프트웨어 버전 관리 시스템의 개념을 제대로 이해하고 기능들을 잘 사용하여 효율적인 버전 관리가 되려면 또다시 새로운 것을 배워야 한다는 것 때문에 쉽게 접근하지 않으려는 경향이 있습니다. 특히나 우리나라 프로그램 개발자들의 경우 윈도우 공유 폴더를 이용해서 개발을 하는 경우가 많습니다. 이렇게 되면 누가 무엇을 수정했는지 알 수도 없고 남이 해 놓은 소스 위에 잘못된 소스를 덮어쓰는 경우도 많이 발생하고 있습니다.

한사람이 개인적으로 진행 하는 프로젝트가 있더라도 버전 관리 프로그램을 사용하는 것이 매우 편리합니다. 앞서 말한 장점들은 여러 명이 개발 하는 것과 한사람이 개발 하는 것에 모두 해당되는 것들입니다.

소프트웨어 버전 관리 시스템을 이용하는 프로젝트들은 아주 많습니다. 대부분 Open Source로 된 프로젝트들은 CVS를 이용하여 버전 관리를 합니다. 대표적으로 *BSD, OpenOffice, Mozilla, XFree86, Apache와 SourceForge.net의 모든 프로젝트들 입니다. 비단 Open Source 뿐만이 아닌 상업 프로그램을 만드는 회사들에서도 소프트웨어 버전 관리 시스템은 필수적입니다.

1.2 버전 관리 시스템의 종류 #

현재 나와 있는 소프트웨어 버전 관리 시스템은 여러 종류가 있습니다. 각각 장단점이 있습니다.
  • CVS (Concurrent Version System) : 가장 널리 사용되며 역사가 깊은 버전 관리 시스템입니다. http://www.cvshome.org
  • Subversion : CVS의 단점을 개선하고 CVS를 대체할 목적으로 개발 되었습니다. 이 문서에서 설명할 버전 관리 시스템입니다. http://subversion.tigris.org
  • Visual Sourcesafe : Microsoft에서 만든 버전 관리 시스템입니다. CVS와는 버전 관리 관점에서 조금의 차이점이 있습니다. 윈도우 기반 소프트웨어의 버전 관리를 할 때 자주 사용됩니다. http://msdn.microsoft.com/ssafe/
  • Clear Case : Rational이라는 회사에서 만든 버전 관리 시스템입니다. 지금은 IBM에 합병되었습니다. 상용 소프트웨어입니다. http://www-306.ibm.com/software/rational
  • BitKeeper : 리눅스 커널이 BitKeeper를 이용해서 개발 하고 있습니다. 상용 소프트웨어입니다. http://www.bitkeeper.com

1.3 버전 관리 시스템의 용어들 #

소프트웨어 버전 관리 시스템에서 사용되는 용어들을 알아보도록 하겠습니다.

저장소 : 리포지토리(Repository)라고도 하며 모든 프로젝트의 프로그램 소스들은 이 저장소 안에 저장이 됩니다. 그리고 소스뿐만이 아니라 소스의 변경 사항도 모두 저장됩니다. 네트워크를 통해서 여러 사람이 접근 할 수 있습니다. 버전 관리 시스템 마다 각각 다른 파일 시스템을 가지고 있으며 Subversion은 Berkeley DB를 사용합니다. 한 프로젝트 마다 하나의 저장소가 필요합니다.

체크아웃 : 저장소에서 소스를 받아오는 것입니다. 체크아웃을 한 소스를 보면 프로그램 소스가 아닌 다른 디렉토리와 파일들이 섞여 있는 것을 볼 수 있습니다. 이 디렉토리와 파일들은 버전 관리를 위한 파일들입니다. 임의로 지우거나 변경하면 저장소와 연결이 되지 않습니다. 체크아웃에도 권한을 줄 수 있습니다. 오픈 소스 프로젝트들에서는 대부분 익명 체크아웃을 허용하고 있습니다.

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

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

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

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

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

1.4 저장소의 디렉토리 배치 #

저장소에 바로 소스를 넣어 프로젝트를 진행 할 수 있습니다. 그렇지만 버전 관리 시스템에서 권장하는 디렉토리 배치 방법이 있습니다.
-- http://svn.samplerepository.org/svn/sample +--+---+- branches    |   +--+- dav-mirror    |   |  |--- src    |   |  |--- doc    |   |  +--- Makefile    |   |    |   +--- svn-push    |   +--- svnserve-thread-pools    |    +---+- tags    |   +--- 0.10    |   +--+- 0.10.1    |   |  |--- src    |   |  |--- doc    |   |  +--- Makefile    |   |    |   +--- 0.20    |   +--- 0.30    |   +--- 0.50    |   +--- 1.01    |    +---+- trunk        |--- src        |--- doc        +--- Makefile

위에 보이는 구조는 보통 자주 사용되는 디렉토리 구조입니다. 저장소 디렉토리 아래 branches, tags, trunk 라는 3개의 디렉토리가 있습니다. 이 디렉토리들은 각각의 용도가 있습니다. CVS는 branch와 tag를 위한 명령이 따로 존재 하지만. Subversion의 경우 명령이 있긴 하지만 단순한 디렉토리 복사와 같은 효과를 냅니다.

trunk : 단어 자체의 뜻은 본체 부분, 나무줄기, 몸통 등 입니다. 프로젝트에서 가장 중심이 되는 디렉토리입니다. 모든 프로그램 개발 작업은 trunk 디렉토리에서 이루어집니다. 그래서 위의 구조에서 trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어가게 됩니다.

branches : 나무줄기(trunk)에서 뻗어져 나온 나무 가지를 뜻합니다. trunk 디렉토리에서 프로그램을 개발하다 보면 큰 프로젝트에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 생깁니다. 프로젝트안의 작은 프로젝트라고 생각하면 됩니다. branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.

tags : tag는 꼬리표라는 뜻을 가지고 있습니다. 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈를 할 때 0.1, 0.2, 1.0 하는 식으로 버전을 붙여 발표하게 되는데 그때그때 발표한 소스를 따로 저장하는 공간입니다. 위에서 보면 tags 디렉토리 아래에는 버전명으로 디렉토리가 만들어져 있습니다.

2 Subversion #

Subversion은 CVS를 대체하기 위해 개발되고 있습니다. Subversion은 소스 코드는 물론 바이너리 파일 등의 여러가지 형식의 파일을 관리 할 수 있습니다.

2.1 CVS와 비교한 Subversion의 장점들 #

  • 커밋 단위가 파일이 아니라 체인지셋이라는 점입니다. CVS에서라면 여러 개의 파일을 한꺼번에 커밋하더라도 각각의 파일마다. 리비전이 따로 붙습니다. 반면 Subversion에서는 파일별 리비전이 없고 한번 커밋할 때마다 변경 사항별로 리비전이 하나씩 증가합니다.
  • CVS에 비해 엄청나게 빠른 업데이트/브랜칭/태깅 시간.
  • CVS와 거의 동일한 사용법. CVS 사용자라면 누구나 어려움 없이 금방 배울 수 있습니다.
  • 파일 이름변경, 이동, 디렉토리 버전 관리도 지원.
  • 원자적(atomic) 커밋. CVS에서는 여러 파일을 커밋하다가 어느 한 파일에서 커밋이 실패했을 경우 앞의 파일만 커밋이 적용되고 뒤의 파일들은 그대로 남아있게 됩니다. Subversion은 여러개의 파일을 커밋하더라도 커밋이 실패하면 모두 이전 상태로 되돌아 갑니다.
  • 양방향 데이터 전송으로 네트워크 소통량(트래픽) 최소화.
  • 트리별, 파일별 접근 제어 리스트. 저장소 쓰기 접근을 가진 개발자라도 아무 소스나 수정하지 못하게 조절할 수 있습니다.
  • 저장소/프로젝트별 환경 설정 가능
  • 확장성을 염두에 둔 구조, 깔끔한 소스

2.2 설치 준비 작업 #

이 장에서는 리눅스, 유닉스 등의 POSIX 호환 운영체제에서 소스를 컴파일하고 설치하는 방법을 다루고 있습니다.

Microsoft Windows에서의 사용은 Microsoft Windows에서 사용하기 장을 참조하십시오.

각각 리눅스 배포판 및 FreeBSD, NetBSD 등의 전용 패키지에 대해서는 운영체제별 전용 패키지 장을 참조하십시오.

설치를 위해 준비해야 할 일.

2.3 사용 할 각각의 파일들 구하기 #

위의 파일들을 /root에 받습니다.

3 설치하기 #

Subversion과 연관된 프로그램들을 컴파일 하고 설치하겠습니다.

3.1 OpenSSL 컴파일과 설치 #

# tar vxzf openssl-0.9.7c.tar.gz# cd openssl-0.97copenssl-0.97c# ./configopenssl-0.97c# makeopenssl-0.97c# make install

3.2 Berkeley DB 컴파일과 설치 #

# tar vxzf db-4.3.29.tar.gz# cd db-4.3.29db-4.3.29# cd build_unixdb-4.3.29/build_unix# ../dist/configuredb-4.3.29/build_unix# makedb-4.3.29/build_unix# make installdb-4.3.29/build_unix# echo "/usr/local/BerkeleyDB.4.3/lib" >> /etc/ld.so.confdb-4.3.29/build_unix# ldconfig

3.3 Apache 컴파일과 설치 #

Apache는 설치해도 되고 안 해도 됩니다. 웹으로 저장소를 공개한다거나. http:// 프로토콜을 이용해서 subversion을 이용하고 싶다면 설치하도록 합니다.
# tar vxzf httpd-2.0.59.tar.gzhttpd-2.0.59# ./configure --prefix=/usr/local/apache2 --enable-suexec                           --enable-so --with-suexec-caller=bin                           --enable-ssl --with-ssl=/usr/local/ssl --enable-cache                           --enable-ext-filter --with-z=/usr/include --enable-dav                           --with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB.4.2httpd-2.0.59# makehttpd-2.0.59# make install

3.4 Subversion 컴파일과 설치 #

데비안의 경우 zlib1g-dev, libxml2-dev, libexpat1-dev의 패키지가 필요합니다. 다른 배포판의 경우도 거의 같은 이름으로된 패키지가 있을 것입니다. 이 패키지들은 라이브러리와 헤더 파일을 포함하고 있는 것들입니다.

앞에서 Apache를 설치했을 경우
# tar vxzf subversion-1.4.2.tar.gz# tar vxzf subversion-deps-1.4.2.tar.gz# cd subversion-1.4.2subversion-1.4.2# ./configure --with-zlib                           --with-apxs=/usr/local/apache2/bin/apxs                            --with-berkeley-db=/usr/local/BerkeleyDB.4.3subversion-1.4.2# makesubversion-1.4.2# make install

Apache를 설치하지 않았을 경우
# tar vxzf subversion-1.4.2.tar.gz# cd subversion-1.4.2subversion-1.4.2# ./configure --with-zlib                               --with-berkeley-db=/usr/local/BerkeleyDB.4.3subversion-1.4.2# makesubversion-1.4.2# make install

4 세부 설정 #

4.1 저장소 만들기 #

소스를 저장할 공간을 만들어야 합니다. 저장소(Repository)는 프로젝트 마다 하나씩 있어야 합니다. 저장소 안에 프로젝트의 소스가 다 들어가게 되며 다른 프로젝트를 진행한다면 그 프로젝트를 위한 저장소를 하나 더 만들어 주어야 합니다. /home/svn안에 저장소를 만들도록 하겠습니다. 앞으로 저장소를 추가 할 때에는 /home/svn 아래에 추가하면 됩니다. 꼭 /home/svn에 하지 않아도 되며 다른 곳에 해도 됩니다.

버클리DB를 이용한 저장소 만들기
# mkdir /home/svn# cd /home/svn//home/svn# svnadmin create --fs-type bdb sample

파일시스템을 이용한 저장소 만들기
# mkdir /home/svn# cd /home/svn//home/svn# svnadmin create --fs-type fsfs sample

svnadmin으로 sample이라는 저장소를 만들면 /home/svn 아래 sample이라는 디렉토리가 생깁니다. 이 디렉토리 안에는 Subversion이 제어하는 파일들이 들어있습니다. 이 디렉토리 안의 파일들은 Berkeley DB 형식으로 되어 있습니다. DB 파일들은 수정하는 일이 없도록 합니다. sample 저장소의 전체 경로는 /home/svn/sample이 됩니다.

이제부터 sample 저장소를 계속 사용하여 설명을 하겠습니다.

4.1.1 공동 작업을 위한 저장소 그룹 설정 #

svn+ssh://로 작업을 하려면 시스템 계정을 만들어야 합니다. 대부분 계정을 만들고 그룹을 하나로 묶는데. 이럴 경우 그룹에 소속된 사용자들에게도 저장소 쓰기 권한을 주어야 합니다. 그래서 저장소의 그룹 권한을 조정해주어야 합니다. 그룹 쓰기 권한을 주지 않으면 저장소를 만든 계정만 저장소에 접근이 가능하고. 그룹에 속해 있더라도 다른 사용자는 저장소에 접근 할 수 없게 됩니다.
# chmod -R g+w sample

4.2 Apache 설정 #

Apache를 설치했다면 Apache 설정을 해주어야 합니다.

Apache가 저장소에 접근할 수 있도록 소유자와 권한을 바꿉니다. Apache는 기본적으로 설치하면 nobody와 nogroup로 실행됩니다.
# cd /home/svn/home/svn# chown -R nobody.nogroup sample

Apache를 /usr/local/apache2에 설치했으므로 설정파일은 /usr/local/apach2/conf/httpd.conf 입니다. dav, dav_svn 모듈이 설정되어 있는지 확인 합니다. 주석처리 되어 있으면 주석을 없애고 없다면 아래 두줄을 추가합니다.
LoadModule dav_module         modules/mod_dav.soLoadModule dav_svn_module     modules/mod_dav_svn.so

httpd.conf 파일 맨 뒷부분에 아래와 같이 추가 합니다. 설정을 저장한 뒤에 Apache를 재시작 합니다.
 /svn/sample>  DAV svn  SVNPath /home/svn/sample
이렇게 설정을 하고 웹 브라우저에서 http://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/svn/sample 로 접속을 합니다.

웹 브라우저에 아래와 같은 화면이 보이면 Subversion 저장소와 아파치가 잘 동작하고 있는 것입니다. 아래와 같이 나오지 않는다면 아파치 설정과 저장소의 소유자와 그룹을 다시 한 번 살펴보시기 바랍니다.
Revision 0: /--------------------------------------------------------------------------------Powered by Subversion version 1.0.0.
위와 같이 설정하면 누구든지(Anonymous) 웹 브라우저로 저장소를 볼 수 있고 Subversion 클라이언트를 이용해서 소스를 체크아웃, 익스포트, 커밋을 할 수 있습니다.

이렇게 실행 시켰으면 "# svn checkout http://(Subversion서버 IP또는 도메인)/svn/sample sample"을 입력합니다. "Checked out revision 0."이 나오면 제대로 설정이 된 것입니다. 아무나(Anonymous) 저장소에 접근해서 체크아웃, 커밋 등을 할 수 있습니다.

4.2.1 Apache에서 ID로 사용자 인증 #

이제 ID를 통해 인증된 사용자만 소스를 체크아웃하고 커밋 할 수 있도록 설정 하겠습니다.
아파치에 사용할 패스워드 파일을 만듭니다. "# htpasswd -c 패스워드파일명 사용자ID"
# cd /usr/local/apache/conf/usr/local/apache/conf# ../bin/htpasswd -c passwd sampleuserNew password:Re-type new password:
"# htpasswd -c"는 패스워드 파일을 처음 만들 때의 옵션이고 사용자를 추가하고 싶을 때에는 "# htpasswd 패스워드파일명 사용자ID" 로 해주면 됩니다.

방금 수정했던 /usr/local/apache2/conf/httpd.conf 파일의 맨 마지막 부분에 추가한 부분을 다시 설정 합니다.
 /svn/sample>  DAV svn  SVNPath /home/svn/sample  AuthType Basic  AuthName "pyrasis's Repository"  AuthUserFile /usr/local/apache2/conf/passwd  Require valid-user
4줄이 추가 되었습니다. AuthType Basic은 Apache 기본 패스워드 인증입니다. AuthName은 패스워드가 걸린 웹페이지에 뜨는 로그인창에 나올 문장입니다. AuthUserFile은 방금 전 만들었던 아파치 패스워드 파일입니다. 절대경로로 적어주어야 합니다. Require valid-user는 인증된 사용자만 볼 수 있게 한다는 것입니다.

이제 웹 브라우저로 다시 sample저장소로 접속해 보면 ID와 패스워드를 묻는 창이 나올 것입니다. 만든 ID와 패스워드를 입력하면 저장소를 볼 수 있습니다. 이렇게 되면 체크아웃, 커밋등을 할 때 ID와 암호를 물어보게 됩니다.

웹 브라우저로 저장소를 보는 것과 체크아웃은 아무에게나(Anonymous) 할 수 있게 하고 커밋은 지정된 사용자만 할 수 있도록 하려면 httpd.conf에서 설정한 부분을 아래와 같이 바꾸어 주면 됩니다.
 /svn/sample>  DAV svn  SVNPath /home/svn/sample  AuthType Basic  AuthName "pyrasis's Repository"  AuthUserFile /usr/local/apache2/conf/passwd  <LimitExcept GET PROPFIND OPTIONS REPORT>    Require valid-user  LimitExcept>
이렇게 하면 저장소를 보거나 체크아웃을 할 때는 ID와 패스워드를 묻지 않고 커밋이나 디렉토리. 파일복사 등의 저장소를 변경하는 작업을 할 때에는 ID와 패스워드를 물어보게 됩니다.

"# svn checkout http://(Subversion서버 IP또는 도메인)/svn/sample sample" 을 입력하면 ID와 패스워드를 물어옵니다. ID와 패스워드를 입력하고 나서 "Checked out revision 0." 이 출력되면 제대로 설정 된 것입니다.

4.3 svnserve를 사용한 서버 #

Subversion의 고유 프로토콜인 svn://을 이용할 수 있는 svnserve를 사용해서 서버 설정을 해보겠습니다. 이것을 사용하면 Apache를 사용한 것보다 체크아웃, 커밋 속도가 더 빠릅니다.

svnserve로 서버를 실행 시키면 3690번의 포트가 열립니다. sample 저장소가 /home/svn 아래에 있을 경우
# svnserve -d -r /home/svn/

이렇게 실행 시켰으면 "# svn checkout svn://(Subversion서버 IP또는 도메인)/sample sample"을 입력합니다. "Checked out revision 0."이 나오면 제대로 설정이 된 것입니다. 이것 또한 아무나(Anonymous) 저장소에 접근해서 체크아웃, 커밋 등을 할 수 있습니다.

4.3.1 svnserve에서 ID로 사용자 인증 #

Subversion 0.33.0버전 이후부터 svnserve로 ID로 사용자 인증이 가능하게 되었습니다. 그 이전 버전에서
반응형