Subversion(SVN, 버전관리 시스템)은 프로젝트 전반적으로 사용하는 파일들을 관리하기 위한 시스템이다.
Subversion은 다수의 개발자가 프로그램을 개발할 때 개발된 버전 관리는 통해 History 를 관리할 수 있도록 하며 전체 팀의 공통 모듈을 일관성 있게 관리할 수 있도록 한다. 본 온라인 메뉴얼의 설명이 되는 대상과 전자정부 표준 프레임워크의 개발환경에 포함되어 제공되는 Subversion의 설치 버전은 다음과 같다.
Subversion은 실제의 작업용 디렉터리(작업공간) 이외에, 저장소(repository)라고 하는 영역에 최초의 데이터와 그 이후의 갱신 이력이나 변경 분 정보를 저장한다.
저장소(Subversion Repository)에서는 버전화 된 모든 데이터를 관리하며, 클라이언트 프로그램은 로컬 환경의 복사된 데이터를 관리한다. 이 사이에는 다양한 저장소 액세스(RA) 층을 통하여 통신 한다.
> mkdir repository
> cd repository > svnadmin create --fs-type fsfs repo1 > svnadmin create --fs-type fsfs repo2
[general] ### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. # anon-access = read # auth-access = write # 익명 사용자는 접근을 허용하지 않고 인증된 사용자만 쓰기 권한을 부여한다. anon-access = none auth-access = write ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the conf directory. ### Uncomment the line below to use the default password file. # 패스워드 파일은 기본값인 conf/passwd 파일을 사용한다. password-db = passwd ### The authz-db option controls the location of the authorization ### rules for path-based access control. Unless you specify a path ### starting with a /, the file's location is relative to the conf ### directory. If you don't specify an authz-db, no path-based access ### control is done. ### Uncomment the line below to use the default authorization file. # 리포지토리의 디렉토리별, 사용자 그룹별 권한관리를 하지 않는 경우, 추가적인 권한 # 설정을 사용하지 않는다. # authz-db = authz ### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository's uuid. # 이 리포지토리의 인증 시 나타나는 타이틀을 지정한다. realm = eGovFrame SVN Repository
### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. [users] # harry = harryssecret # sally = sallyssecret developer01 = 123qwe developer02 = 123qwe
> ls repository > svnadmin dump repository > repository.dump
> svnadmin create repository > ls repository repository.dump > svnadmin load repository < sample.dump