여러 사람이 참여하는 프로젝트에 version control system의 더할나위 없이 중요하다. 없으면 작업을 못할 정도라고나 할까... 하지만 혼자 개발을 할지라도 version control system은 많은 도움을 줄 수 있다. 여러 사람을 떠나서 개발하는 컴퓨터가 여러대일 경우라면 매우 유용하다. 또한 특정시점의 개발소스로 롤백을 하고 싶다거나..환경을 세팅하는데 매번 잘 안되었었는데 이번에 맘먹고 될때까지 해보았다.
 
여기서는 open source인 subversion의 사용법을 간단하게 정리하려고 한다. Subversion은 server side program이다. 보통의 경우 개발자는 tortoisesvn 같은 클라이언트 프로그램만 사용할 줄 알면 된다. Tortoisesvn은 GUI환경을 제공하고 윈도우탐색기에서 쉽게 사용할 수 있으므로 별로 설명이 필요 없을 정도 이다. Subversion의 site 주소는 아래와 같다. 
 subversion(server) site : http://subversion.tigris.org/
Download page로 가서 다운!

Setup-Subversion-1.6.3.msi
필자의 경우 위의 파일을 받았다. 

subversion을 윈도우에 세팅하고 사용하기 위해서 거치는 과정은 대략 다음과 같다.
1. subversion을 설치한다.
2. repository를 생성한다.
3. 설정파일 세팅, 유저 생성, 권한 설정을 한다.
4. svnserve.exe를 서비스에 등록한다.
5. 공유기 사용자라면 server로 사용되는 컴퓨터가 외부에서 접근할 수 있게 한다.(port forwarding, dmz 설정)
6. 방화벽 설정을 확인한다.
7. 유동IP를 가졌다면 DDNS에 등록한다.(dyndns, codns등등)
8. 테스트를 해보고 사용해본다.

실제 5번부터의 과정이 딱히 매뉴얼도 없고, 문제를 파악하는데 시간을 많이 빼앗겼다. 공유기 사용자가 아니라면 쉽게 할 것 같다. Subversion은 기본적으로 3690번 포트와 TCP 프로토콜을 사용하므로 공유기와 방화벽 설정을 할 때 참고하기 바란다. 실제 정리는 주제와 관련이 있는 4번과정까지 하고 8번으로 바로 넘어가겠다.

1. subversion 설치
msi 파일을 다운 받았다면 쉽게 설치 가능하다. 
(windows 95/98계열이면 설치 중에 path을 설정하는 등의 주의 사항이 나오는데 XP등의 유저라면 따로 할일은 없다.)

2. repository 생성방법
실행창을 열고 cmd를 실행하자. (Tortoisesvn을 설치했다면 이 과정을 윈도우탐색기에서도 편하게 할 수 있을 것이다.)
c:\...>svnadmin create "repository경로"
 ex) c:\>svnadmin create c:\svn_repository
그러면 지정된 경로에 repository가 만들어 진다. repository내부를 살펴 보면 conf 폴더가 있는데, 이 폴더안의 설정파일외에는 건드릴 곳은 없다고 보면된다.

3. 설정파일 세팅, 유저 생성, 권한 설정하기
conf/svnserve.conf 파일 예제
[general]
password-db = passwd
realm = my repository
anon-access = none
auth-access = write
auth-db = authz
#설명: 유저 설정 파일은 passwd이고, repository의 이름은 my repository, anonymous유저는 권한이없고(none), 인증받은 유저는 읽고 쓸수 있다.(write), 유저별 권한 설정 파일은 authz이다.

conf/passwd 파일 예제
[users]
user1 = abcd1234
#설명: user1 계정은 암호가 abcd1234이다.

conf/authz 파일 예제
[groups]
group1 = user1, user2
[/]
@group1 = rw
#설명: group1은 user1, user2를 포함한다. group1은 repository의 제일 상위 폴더([/])부터 rw권한을 가진다.
 
4. svnserve.exe를 서비스에 등록한다.
서비스에 등록하는 명령 예제는 다음과 같다.
c:\>sc create svnserver binpath= "\"C:/Program Files/Subversion/bin/svnserve.exe\" --service -r c:/svn_repository" displayname= "Subversion Server" depend= Tcpip start= auto
경로는 알맞게 수정하도록 하자. 경로를 입력할 때 Program Files 처럼 공백이 있는 경우 경로 전체를 \"를 써서 감싸준다. binpath=와 displayname=등의 =뒤에는 공백을 꼭 빠뜨리지 말고 적어줘야 한다.
서비스를 시작하거나 중지하기 위해서는 제어판-관리도구-서비스에서 조절하면 되고 아래의 명령어로도 가능하다.
c:\>net start 서비스이름(ex, svnserver)
c:\>net stop 서비스이름(ex, svnserver)

서비스를 삭제하는 명령어는 다음과 같다.
c:\>sc delete svnserver

8. 테스트를 해보고 사용해본다
공유기, 방화벽, ddns등의 설정을 마치고 4번과정의 svnserve의 -r옵션 뒤의 repository를 언제든지 사용할 수 있다. svn을 사용하는 것은 client프로그램을 사용하는 것을 말한다. tortoisesvn을 이용하는게 훨씬 편하다.
import, checkout, update, commit, add, revert등을 여러 pc에서 테스트 해보자.

references
1. http://svnbook.red-bean.com/



[ 출처 : http://leesort.tistory.com/11 ]

+ Recent posts