우분투 || svn 설치 및 사용

1. 설치
$ sudo apt-get install subversion

2. 사용

2.1 repository 만들기

원하는 위치에 repository 디렉토리를 생성한다. repository 디렉토리는 모든 소스들이 svn에 저장될 위치이다. warnus는 필자의 개인 계정이다.

$ mkdir /home/warnus/repo

여기에 프로젝트 별로 개별 저장소를 만들 수 있다.

$ svnadmin create –fs-type fsfs /home/warnus/repo/sample

2.2 SVN Repository 접근방식 설정

2.2.1 패스워드 접근 설정과 계정 설정

$ vim /home/warnus/repo/sample/conf/svnserve.conf

내용을 보면 섹션이 나눠져 있는데 [general] 섹션에 다음을 입력한다.

password-db = passwd

ex)

[general]
password-db = passwd

이제 접속 가능한 유저를 설정하는 부분이다.

$ vim /home/warnus/repo/sample/conf/passwd

#username = passwd
사용자이름 = 패스워드

사용자 이름과 패스워드를 입력하면 된다.

ex)

warnus = 12345

2.2.2 SVN 서버 실행

SVN 접속 방식은 SVN 서버를 통해 접근하는 것으로 서버를 실행 시켜야한다.

$ svnserve -d -r /home/warnus/repo

서버가 제대로 동작하는지 확인하려면 다음 명령을 사용한다.

$ netstat -na | grep 3690

3690은 SVN의 기본 포트 번호이다.

이제 기본으로 사용하는 trunk, branches, tags 디렉토리를 생성한다.

$ svn mkdir svn://localhost/sample/trunk –username warnus
$ svn mkdir svn://localhost/sample/branches –username warnus
$ svn mkdir svn://localhost/sample/tags –username warnus

각각의 디렉토리를 생성할 때 코멘트를 입력하게 하는데 별다른 내용 없이 에디터 창을 닫아도 된다.
그후 사용자 인증에 관한 질의가 있는데 ‘yes’ or ‘no’ 로 답변하는 부분이 있다.

yes를 아무리 눌러도 계속 질문하는 경우엔 한글로 ‘예’ 라고 입력하자.

2.3 프로젝트 import

프로젝트를 저장소에 넣기 위한 작업을 하자.

먼저 테스트하기 위해 임의의 프로젝트를 생성해보자. (import는 디렉토리 단위로 할 수 있다.)

$ mkdir myproject

sample.c 생성

int main(void)
{
    printf(“Hello SVN\n”);
}

위 파일이 생성 완료 되었다면 import 해보자.

$ svn import myproject svn://localhost/sample/trunk –username warnus

2.4 checkout 하기

저장소에 올려둔 소스를 가져오고 싶으면 checkout 하면 된다.

$ svn checkout svn://localhost/sample/trunk ./

2.5 update

수정된 내역을 update 하고 싶으면 이전에 checkout 해둔 곳에서 다음 명령 입력

$ svn update

2.6 commit
 
소스 수정 후 commit 하고 싶으면 다음 명령을 입력

$ svn commit

2.7 Log 확인

저장소에서 어떤 내용이 변경되었는지 확인하려면 다음 명령을 입력

$ svn log

참고
http://wiki.kldp.org/wiki.php/Subversion-HOWTO
http://maca.egloos.com/5325644
http://blog.foxb.kr/224

http://www.welog.net/gbbs/bbs/board.php?bo_table=linux&wr_id=175&sfl=wr_subject||wr_content&stx=http&sst=wr_hit&sod=asc&sop=and&page=3

Leave a Reply

Your email address will not be published. Required fields are marked *