이번에는 프로젝트 형상관리를 위하여 

SVN(subversion)을 설치방법부터

이클립스를 통한 접속테스트 까지 진행해보도록 하겠습니다.


가상머신인 virtualbox내에 설치된 CentOS 기준으로 

설명을 드리도록 하겠습니다.


※ 가상머신에 설치되지 않고 직접 서버에 설치를 하셨다면 

하단 내용 중 포트포워딩 관련 내용을 제외하시고 진행하시면 되겠습니다.


간단하게 yum 명령어를 이용하여 설치해보도록 하겠습니다.


만약 이미 설치되어있다고 되어있을경우 문제가 발생할 수 있으니 

삭제명령어를 통하여 기존 subversion을 삭제 후 install을 해주도록 합니다.



1
2
[root@localhost ~]#  yum -y remove subversion
[root@localhost ~]#  yum -y install subversion



설치가 완료되었으면 svn 사용공간을 위한 

디렉토리를 생성 및 저장소를 생성 하도록 하겠습니다.



1
2
3
4
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir svnserver
[root@localhost local]# svnadmin create --fs-type fsfs /usr/local/svnserver/project
[root@localhost local]#



※ 상단의 project는 svn 접속시 사용되는 저장소명칭입니다. 

원하시는 저장소명을 정해주시면 되겠습니다.


이어서 접속권한설정을 위하여 

생성한 저장소의 conf 디렉토리내에 존재하는 

svnserve.conf 파일을 설정해주도록 합니다.



1
[root@localhost local]# vi /usr/local/svnserver/project/conf/svnserve.conf



[general] 하단을 보시면 주석처리되어있는  


1
2
3
# anon-access = read
# auth-access = write
# password-db = passwd


3개의 코드들의 주석을 해제합니다.

주석해제는 앞에 #을 제거해주시면 되겠습니다.


그리고 주석 해제한 코드중 anon-access 의 

read 값을 none로 변경해주도록 합니다.


최종적으로 변경된 코드는 다음과 같습니다.



1
2
3
anon-access = none
auth-access = write
password-db = passwd



그리고 svn으로 생성한 project 저장소에

접속을 위한 계정을 추가해주도록 합니다.


※ 계정추가는 passwd 파일을 설정해줍니다.



1
[root@localhost local]# vi /usr/local/svnserver/project/conf/passwd



[users] 밑에 본인이 사용하고자 하는 

아이디와 패스워드를 설정해주도록 합니다.



1
아이디 = 패스워드



주석처리된 계정을 사용하셔도 무관하나 

본인이 편한 아이디와 패스워드를 사용하시길....


설정은 이걸로 마무리 되었습니다.

이제 svn 서버를 실행해보도록 하겠습니다.


실행전 svn 서버가 현재기준으로 동작이 되고 있는지 

확인해보도록 하겠습니다.



1
2
3
[root@localhost local]# ps -ef | grep svnserve
root      1181  1098  0 11:25 pts/0    00:00:00 grep svnserve
[root@localhost local]#



역시 서버를 실행하지 않았으니 프로세스가 없겠군요 ㅎ

그럼 서버를 실행 후 프로세스가 떠있는지 재확인 해보도록 하겠습니다.



1
2
3
4
5
[root@localhost local]# svnserve -d -r /usr/local/svnserver/
[root@localhost local]# ps -ef | grep svnserve
root      1183     1  0 11:27 ?        00:00:00 svnserve -d -r /usr/local/svnserver/
root      1185  1098  0 11:27 pts/0    00:00:00 grep svnserve
[root@localhost local]#



정상적으로 프로세스다 떠있는거 같군요 


이제 외부에서 접속을 위하여 

svn 기본포트인 3690을 iptables에서 방화벽 해제를 해주고 

가상머신에서 동작되고 있으므로 

포트포워딩을 이용하여 3690 포트를 열어준 후 

이클립스로 svn 접속을 해보도록 하겠습니다.


우성 방화벽 해제를 해주도록 하겠습니다.



1
[root@localhost local]# vi /etc/sysconfig/iptables


1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT



iptables가 변경이 되었으므로 서비스 재시작을 해주도록 합니다.



1
2
3
4
5
6
[root@localhost local]# service iptables restart
iptables: 체인을 ACCEPT 규칙으로 설정 중:  filter          [  OK  ]
iptables: 방화벽 규칙을 지웁니다:                          [  OK  ]
iptables: 모듈을 언로드하는 중:                            [  OK  ]
iptables: 방화벽 규칙 적용 중:                             [  OK  ]
[root@localhost local]#



이어서 포트포워딩을 통하여 3690포트를 열어주도록 하겠습니다.









포트포워딩까지 완료되었다면 이제는 이클립스를 이용하여

 project svn 저장소를 접속해보도록 합니다.


※ 이클립스의 SVN 클라이언트가 설치되어있다는 가정하에 진행하겠습니다.






New Repository Location의 URL영역에 

svn://가상머신의호스트IP/저장소명

입력 후 Browse... 버튼 클릭






위와같은 순서로 출력이 되었다면 

svn 접근이 성공 한 것입니다.


Authentication의 User와 Password 부분은 

SVN Server 저장소설정해준 것 중

 passwd 파일내에 정의해준 ID/PASSWORD를 입력해주시면 되겠습니다.



by 개발로짜