Subversion Repository 구성

Clunix Wiki
(버전 사이의 차이)
(rep-cache.db 그룹 write 권한 미부여에 대한 설명 추가)
 
(한 사용자의 중간의 편집 2개 숨겨짐)
1번째 줄: 1번째 줄:
== Subversion Repository 설정 ==
+
연구소에서 개발하는 제품/프로젝트 별로 Subversion Repository(저장소)를 생성한다.
  
연구소에서 진행되는 개별 프로젝트 별로 Subversion Repository(저장소)를 생성하는 과정을 클루닉스 개발 환경에 맞추어 설명한다.
+
연구소의 공식 Subversion 저장소는 repo(192.168.12.10)
 +
<tt>/home/cvs/repos</tt> 디렉토리 하위에 프로젝트별 저장소 디렉토리가 존재한다.
  
=== Repository 관리 권한 ===
+
* [[연구소 Subversion Repository 목록]]
Repository를 새로 생성하거나 삭제하는 작업은 관리자 권한을 부여받은 사용자만이 가능하다. 현재 Subversion 저장소는 repo(192.168.12.10)의
+
<tt>/home/cvs/repos</tt> 디렉토리 하위에 프로젝트별 저장소 디렉토리가 존재한다. 현재 repo의 root권한을 보유한 사람은 다음과 같으며,
+
저장소 관련 권한이 없는 개발자들은 다음 사람들에게 개별적으로 요청하여야 한다.
+
*cezanne, joon626
+
  
=== Repository 목록 ===
+
repo시스템의 cvs 사용자(관리자만 접근 가능)만이 새로운 저장소를 생성하거나 삭제할 수 있으며,
[[DevSVNRepoList | 연구소 SVN Repository 목록]]
+
일반사용자들은 repo 시스템에 사용자 계정을 생성하여 원격으로 저장소에 접근하여야 한다.
  
=== Repository 생성 절차 ===
+
대부분의 Repository는 최상위에 3개의 디렉토리인 trunk, tags, branches로 구성된다.
연구소의 모든 개발 Subversion Repository는 repo:/home/cvs/repos상에 생성한다.  
+
* trunk: 현재 개발 중인 revision tree
 
+
* tags: release 버전이나 특정 시점의 snapshot을 위한 디렉토리. 보통 trunk 혹은 branches의 copy임. 이 tags 디렉토리는 일반사용자는 읽기만 가능하며 repository 관리자인 cvs 사용자만이 쓰기가 가능함
Repository명은 프로젝트를 잘 표시할 수 있는 디렉토리 이름으로 생성한다.
+
* branches: release 후 버그 수정 혹은 실험적인 테스트가 분기되어 revision이 진행. 모든 개발자가 branches의 내용을 자유롭게 수정가능함
 
+
<tt>test</tt>라는 Repository를 생성하는 경우, 다음과 같은 절차에 따른다. 이 때 사용자는 cvs로 생성하여 repository의 사용자와 그룹이 모두 cvs로 설정되도록 한다.
+
# <tt>svnadmin create /home/cvs/repos/test</tt>
+
# <tt>chmod -R g+w test</tt>
+
# <tt>svnserve.conf</tt> 설정 수정
+
 
+
ssh를 통하여 원격으로 repository를 접근하므로 <tt>/usr/bin/svnserve</tt>의 group은 cvs로 하여 setgid가 설정되어 있어야 하며,
+
repository에 대하여 group에 write 권한을 부여하여야 한다.
+
 
+
svn 1.6이상에서는 그룹에 write권한을 주지 않아도 무방하지만, <tt>db/rep-cache.db</tt>는 그룹 권한이 주어지지 않는 듯 하다. 직접 해당 파일에 대하여 write권한 부여 필요함
+
 
+
subversion에 대한 설정은 <tt>test/conf/svnserve.conf</tt>을 reposotory 설정에 맞게
+
수정하면 된다. 일반적으로 아래와 같은 내용으로 구성된다.
+
 
+
[general]
+
anon-access = none
+
auth-access = write
+
authz-db = /home/cvs/repos/authz
+
realm = Description of this repository
+
 
+
repo의 모든 repository들은 각 사용자에 대한 권한을 <tt>/home/cvs/repos/authz</tt> 파일을 사용하는 것을 권장한다.
+

2012년 12월 21일 (금) 10:34 현재 판

연구소에서 개발하는 제품/프로젝트 별로 Subversion Repository(저장소)를 생성한다.

연구소의 공식 Subversion 저장소는 repo(192.168.12.10)의 /home/cvs/repos 디렉토리 하위에 프로젝트별 저장소 디렉토리가 존재한다.

repo시스템의 cvs 사용자(관리자만 접근 가능)만이 새로운 저장소를 생성하거나 삭제할 수 있으며, 일반사용자들은 repo 시스템에 사용자 계정을 생성하여 원격으로 저장소에 접근하여야 한다.

대부분의 Repository는 최상위에 3개의 디렉토리인 trunk, tags, branches로 구성된다.

  • trunk: 현재 개발 중인 revision tree
  • tags: release 버전이나 특정 시점의 snapshot을 위한 디렉토리. 보통 trunk 혹은 branches의 copy임. 이 tags 디렉토리는 일반사용자는 읽기만 가능하며 repository 관리자인 cvs 사용자만이 쓰기가 가능함
  • branches: release 후 버그 수정 혹은 실험적인 테스트가 분기되어 revision이 진행. 모든 개발자가 branches의 내용을 자유롭게 수정가능함
부서별 위키