전자정부 표준프레임워크는 개발환경의 소스관리도구로 오픈소스인 Subversion을 사용한다.
Subversion(SVN, 버전관리 시스템)은 시스템의 콘솔을 통한 직접적인 사용 이외에 사용자의 PC에서 편리하게 사용할 수 있도록 GUI를 가진 다양한 클라언트가 존재한다.
Subversion은 프로젝트 전반적으로 사용하는 파일들을 관리하기 위한 시스템이다.
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
GUI 방식은 현재 Windows 운영체제만 지원한다.
서버 개발환경 설치 가이드 내 [표준프레임워크] CI 및 Nexus 환경구축 가이드 v4.3을 활용하여 SVN을 설치 및 구성한다.