SVN 이란?

SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴입니다.

SVN은 여러명이서 작업하는 프로젝트의 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 해결하기 위해 Repository를 만들어,

Repository에 소스를 저장해 소스 중복이나 버전관리 등 여러 문제를 해결하기 위한 Software 입니다.

SVN 서버가 설치된 시스템에서 Repository를 통해 소스를 유용하게 관리할 수 있는 기능을 지원하는 프로그램입니다.

 

SVN 서버 환경설정 (Linux)

SVN 서버를 구축하기 위해 Windows 환경에서는 VisualSVN 프로그램을 주로 사용하고, Linux 환경에서는 Subversion을 사용합니다.

리눅스 환경에서 SVN 서버를 구축 후 리눅스와 윈도우 클라이언트에서 사용하는 방법 기술하도록 하겠습니다.

 

1. SVN 서버를 구축하기 위해 Subversion을 설치합니다.

# yum install subversion

 

2. 설치 후 프로젝트를 저장할 Repository를 생성합니다.

# mkdir /home/svn -> 루트 저장소

# cd /home/svn

# svnadmin create –fs-type fsfs repos -> 사용할 저장소 지정

 

3. SVN을 구동하기 전에 SVN 사용 Port인 3960번 방화벽 해제 후 svnserve를 구동합니다.

# iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

# svnserve –d –r /home/svn

 

4. SVN Checkout 과정으로 아래의 체크아웃 명령어를 통해 Repository가 정상적으로 설정되었는지 확인합니다.

# svn checkout svn://192.168.0.230/repos

 

5. 사용자 생성 및 인증 과정으로 "repos/conf/svnserve.conf" 파일을 아래와 같이 설정합니다.

# vi repos/conf/svnserve.conf

[general]

anon-access = none -> 인증되지 않은 사용자 접근 거부

auth-access = write -> 인증된 사용자 쓰기 권한

password-db = passwd -> 사용자에 대한 계정정보

authz-db = authz -> 사용자에 대한 저장소 권한 부여

 

6. SVN 서버에 접속할 유저 및 패스워드를 "repos/conf/passwd" 파일에서 생성합니다.

# vi repos/conf/passwd

[users]

username = password -> 생성할 아이디 = 생성할 패스워드

 

7. SVN 서버에 접속할 유저에 권한 설정을 "repos/conf/authz" 파일에서 진행합니다.

# vi repos/conf/authz

[group]

usergroup = username1, username2, username3 -> 사용자들을 usergroup에 포함

[/]

*=rw

[repository:/repos]

@usergroup = rw -> 그룹에게 rw 권한 부여

username = rw -> 사용자에게 rw 권한 부여

 

8. 접근권한 및 환경설정을 진행합니다.

# chmod –R 760(or 764) /home/svn/*

-> 760. 파일 생성자: RWE, 그룹: RW 부여

-> 764. 파일 생성자: RWE, 그룹: RW, 타인: R 부여

 

# SVN_EDITOR=/usr/bin/vim

# export SVN_EDITOR

 

9. 서버 재부팅 시 SVN 서버가 자동실행 되도록 "/etc/rc.d/rc.local" 파일에 다음과 같이 입력합니다.

# vi /etc/rc.d/rc.local

/usr/bin/svnserve –d –r /home/svn

 

10. SVN 서버를 구성할 디렉토리들을 아래의 명령어로 생성합니다.

# svn mkdir svn://192.168.0.230/repos/branches

# svn mkdir svn://192.168.0.230/repos/tags

# svn mkdir svn://192.168.0.230/repos/trunk

 

 이후 아래의 명령어로 디렉터리 생성된 디렉터리의 구조를 확인합니다.

# svn list svn://192.168.0.230/repos

 

11. SVN 서버 Repository에 관리할 프로젝트 소스를 올리기 위해 아래의 명령어를 입력합니다

# svn import /home/test svn://192.168.0.230/repos/test

 

12. SVN 서버 Repository에 변경된 소스를 최선 버전으로 업데이트 후 변경된 로그를 확인합니다.

# svn update

# svn log

 

SVN 클라이언트 환경설정 (Linux)

리눅스 환경에서 SVN 클라이언트를 구축하는 방법입니다.

 

1. SVN 서버에 접속하기 위해 Subversion을 설치합니다.

# yum install subversion

 

2. SNV 사용 Port인 3960번 방화벽을 해제합니다.

# iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

 

3. SVN 서버의 Repository로 부터 소스를 내려받을 디렉토리를 만들어 체크아웃합니다.

# mkdir /home/SVN_repo

# cd /home/SVN_repo

# svn checkout svn://192.168.0.230/repos

 

4. Update 명령으로 로컬 저장소에 있는 파일들을 SVN 서버 Repository의 최신 버전으로 다운로드합니다.

# svn update

 

5. Add 명령으로 버전 관리 대상으로 파일을 등록하지만, SVN 서버 Repository에 저장은 되지 않습니다.

# svn add [파일명]

 

6. Commit 명령으로 로컬 저장소의 변경된 내용을 SVN 서버로 전송합니다.

Revision 수가 증가하고, Update로 최신 소스로 변경하고 컴파일 선공 시에만 Commit을 진행해야 합니다.

# svn commit [파일명] –m [로그로 남길 메세지]

 

SVN 클라이언트 환경설정 (Windows)

윈도우 환경에서 SVN 클라이언트를 구축하는 방법입니다.

 

1. SVN 클라이언트를 사용하기 위해 아래의 링크에서 TortoiseSVN을 설치합니다.

링크: https://tortoisesvn.net/downloads.html

 

2. SVN 서버의 Repository의 프로젝트를 내려받을 디렉토리를 생성 후 우클릭하여 SVN Chekcout을 선택합니다

 

3. SVN 서버 Repository의 URL 주소를 입력합니다.

 

4. SVN 서버에서 생성한 Username과 해당하는 Username의 Password를 입력합니다.

 

5. 입력 Username과 Password가 일치하면 Repository의 파일들을 Checkout Directory로 Copy합니다.

 

6. 완료 후 SVN 서버 Repository의 디렉토리와 파일이 해당 디렉토리 안에 복사됩니다.

 

7. Add 명령으로 버전 관리 대상으로 파일을 등록하지만, SVN 서버 Repository에 저장은 되지 않습니다.

 

8. Commit 명령으로 로컬 저장소의 변경된 내용을 SVN 서버로 전송합니다.

'SVN · Git' 카테고리의 다른 글

Github 명령어 정리  (0) 2020.11.09
SVN Command  (0) 2020.06.22