티스토리 뷰

728x90
반응형

 포스팅은 SVN을 통한 형상관리 방법에 대한 가이드입니다.


IT는 어마어마하게 다양한 솔루션과 개발방식 그리고 이를 서포트 하기 위한 도구들로 이루어져 있습니다.

그중 최근 화두가 되고 있는(다소 늦은 감이 있지만,,) ALM의 다양한 요소를 살펴보고 직접 이를 구축해 보는 시간을 갖도록 하겠습니다.


그 첫번째 시간으로 SVN(Subversion)을 통한 소스 형상관리 방법에 대해 알아 보겠습니다.

SVN + Eclipse 연동과정까지 살펴보고 팀 단위 프로젝트를 어떻게 효율적으로 관리하는 것이 좋은지 살펴보는 시간이 되겠습니다.


[SVN Install]

svn이란?

서브버전(Subversion)은 자유 소프트웨어 버전 관리 시스템이다. 명령행 인터페이스에서 사용하는 명령어를 따서 “SVN”이라고 줄여서 부르기도 한다. 제한이 있던 CVS를 대체하기 위해 2000년부터 콜랩넷에서 개발되었다.
현재는 아파치 최상위 프로젝트로서 전 세계 개발자 커뮤니티와 함께 개발되고 있다.
서브 버전은 서버-클라이언트 모델을 따른다. 서버는 작업하는 컴퓨터 내에 둘 수도 있고, 전산망에 연결된 별도의 컴퓨터에 두고 사용할 수도 있다. 서브버전 서버와 클라이언트는 http, https, svn, svn+ssh의 규약으로 통신한다.


svn install

인스톨 과정은 여러가지 방법이 있습니다.

직접 install binary를 다운로드 받아 업로드 후 설치 하는 방법과 rpm, yum 등의 dependency check가 직접 가능한 package 설치 binary를 사용할 수 도 있습니다.

이중 아래 내용은 yum을 활용하여 설치하는 과정입니다.

[root@infrasvr etc]# yum install -y subversion

Loaded plugins: kabi, refresh-packagekit, security

Loading support for kernel ABI

ol6_UEK_latest                 | 1.2 kB     00:00     

ol6_UEK_latest/primary       |  32 MB     00:03     

ol6_UEK_latest                 680/680

ol6_latest                        | 1.4 kB     00:00     

ol6_latest/primary              |  63 MB     00:05     

ol6_latest                         39043/39043

Setting up Install Process

Package subversion-1.6.11-15.el6_7.x86_64 installed

[root@infrasvr etc]#


자 기동을 해볼까요?

[infrasvr:svn:/user/svn] netstat -an | grep 3690

[infrasvr:svn:/user/svn] svnserve -d -r /user/svn

[infrasvr:svn:/user/svn] netstat -an | grep 3690

tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      

[infrasvr:svn:/user/svn]

svnserve의 default port는 3690입니다. 정상 기동이 되면 LISTEN 된 것을 확이할 수 있습니다.


-d -r의 옵션은 아래와 같습니다.

혹시나 3690 port를 타 process에서 사용하고 있다면....

아래와 같이 기동이 가능합니다.

[infrasvr:svn:/user/svn] svnserve -d -r /user/svn --listen-port 5544


자 기동이 되었으니 Eclipse와 연동을 해봐야겠네요.

[infrasvr:svn:/user/svn] svnserve -h

사용법: svnserve [-d | -i | -t | -X] [options]

옵션 목록:

  -d [--daemon]            : 데몬 모드

  -i [--inetd]             : inetd 모드

  -t [--tunnel]            : 터널 모드

  -X [--listen-once]       : 1 회만 listen 합니다. (디버깅에 사용됩니다.)

  -r [--root] ARG          : 서비스를 제공할 루트 디렉토리

  -R [--read-only]         : 저장소 구성화일을 무시하고. 읽기 전용으로 바꿈.

  --config-file ARG        : arg로 지정된 파일에서 사용자 구성화일을 읽습니다.

  --listen-port ARG        : 리슨 포트

                             [모드: 데몬, 1회 리슨]

  --listen-host ARG        : 리슨 호스트명 혹은 IP 주소

                             [모드: 데몬, 1회 리슨]

  -T [--threads]           : fork대신 thread 사용합니다.  [모드: 데몬]

  --foreground             : 포어그라운드로 실행 (디버깅용)

                             [모드: 데몬]

  --log-file ARG           : svnserve 로그 파일

  --pid-file ARG           : 서버의 프로세스 ID를 ARG 파일에 기록

                             [모드: 데몬, 1회 리슨]

  --tunnel-user ARG        : 터널 사용자명 (생략값은 현재 uid의 이름)

                             [모드: 터널]

  -h [--help]              : 이 도움말을 출력함

  --version                : 프로그램 버젼 정보를 보여줍니다

[infrasvr:svn:/user/svn]

 

# 참고

svn repositories 생성 방법

명령어 : svnadmin create
사용 예시 :
-- 일반 파일시스템으로 생성
$ svnadmin create --fs-type fsfs /user/narason/public-tmax
-- berkeley db 형식으로 생성
$ svnadmin create --fs-type bdb /user/narason/public-tmax
 


[Eclipse SVN Plugin 설치]
- Eclipse SVN
a. Eclipse 설치는 압축을 푸는 것 만으로 설치 완료 (별도 설명하지 않겠습니다. 원하시는 버전을 eclipse 사이트에서 다운받아 압축해제 합니다)
b. Eclipse svn 설치 순서
[Help -> Install New Software 선택]




 

[Add Button Click!] 





[svn repository add]




Name : svn

Location : http://subclipse.tigris.org/update_1.10.x
위 사항 입력 후 OK Click!


[Subclipse, SVNKit 선택 및 install]




 

Next 및 이후 과정을 수행 하시면 버전에 따라 몇 번 Eclipse가 재-구동 될 수 있으며, 설치가 완료 됩니다.


[Eclipse SVN 연결 방법]
[svn Repository 접속]




 

빨간 색 표시 부분을 클릭하여





[SVN Repository Exploring 선택 후 svn repository add]





오른쪽 버튼 3개 중 초록색+ 표시되있는 버튼 클릭!!

# 참조

현재 svn Server는 다음과 같은 정보로 기동되어 있습니다.

[infrasvr:svn:/user/svn] svnserve -d -r /user/svn/public-tmax --listen-port 5544

[infrasvr:svn:/user/svn] ps -ef | grep svnserve

svn      25937     1  0 10:50 ?        00:00:00 svnserve -d -r /user/svn/public-tmax --listen-port 5544

svn      25939 25836  0 10:50 pts/4    00:00:00 grep svnserve

[infrasvr:svn:/user/svn] netstat -an | grep 5544

tcp        0      0 0.0.0.0:5544                0.0.0.0:*                   LISTEN      

unix  3      [ ]         STREAM     CONNECTED     9585544 /user/skcho/webtob4181/path/hthd001

[infrasvr:svn:/user/svn]

 

아래와 같은 창이 뜨게 되는되요.




 

repositories들이 존재하는 URL을 입력하고 Authentication을 입력합니다.

앞서 상단에 명시한 것 처럼 svn은 다음과 같은 protocol을 지원합니다. (http, https, svn, svn+ssh)

Authentication은 아래 경로에서 지정 가능합니다.

[infrasvr:svn:/user/svn/svn/conf] ls -la

합계 20

drwxr-xr-x 2 svn svn 4096 2017-05-29 18:06 .

drwxr-xr-x 6 svn svn 4096 2017-05-23 12:10 ..

-rw-r--r-- 1 svn svn 1080 2014-07-03 17:28 authz

-rw-r--r-- 1 svn svn  321 2017-05-23 12:09 passwd

-rw-r--r-- 1 svn svn 2271 2017-05-23 12:10 svnserve.conf

[infrasvr:svn:/user/svn/svn/conf] pwd

/user/svn/svn/conf

[infrasvr:svn:/user/svn/svn/conf] cat passwd

### 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]

tmax=mwtech

# harry = harryssecret

# sally = sallyssecret

[infrasvr:svn:/user/svn/svn/conf]

 

자 Finish 버튼을 클릭합니다. 드디어 repositories가 생성 되었습니다. 





오늘은 여기까지 하겠습니다.


# 요약!

1) Eclipse download 및 압축 해제

2) svn yum 설치

3) svn 기동 종료

4) eclipse plugin 설치

5) svn / eclipse 연동 (repositories 생성)


다음시간에는 SVN 활용방법을 알아보겠습니다.


# 댓글과 추천은 글쓴이에게 힘이됩니다.! 

728x90
반응형