2014. 7. 4. 14:43

svn(subversion) 간단 정리

1. subversion 설치

yum install subversion


2. 저장소로 사용할 디렉토리 생성

mkdir /svn

chown -R root:root /svn


원하는 곳에 만들면 된다(/svn 은 예제일뿐)


3. 디렉토리에 저장소 생성

svnadmin create --fs-type fsfs /svn/repo


fsfs 는 저장소를 파일시스템으로 만든다는 것.

다른 형태도 있으니 필요하면 변경


4. 접속 인증 설정

/svn/repo/conf/svnserve.conf  파일내용을 아래와 같도록 수정


[general]

anon-access = none

auth-access = write

password-db = passwd   --> 접속인증 아이디/비번 저장을 passwd 파일로 사용한다는 뜻(리눅스의 passwd 아님)

# authz-db = authz

realm = bage

[sasl]

# use-sasl = true

#min-encryption = 0

#max-encryption = 256


5. 접속자 정보 설정

svnserve.conf 파일에서 password-db = passwd 로 했을 경우  /svn/repo/conf/passwd 파일에 아이디 비번 추가


[users]

bage= xxxxx  --> 아아디=비번


공용서버 일 경우 아이디/비번을 열어서 볼 수 있으니 sasl 방식을 사용하도록 함


6. svn mkdir, 파일 추가등을 할때 메세지를 추가하기 위해 .bash_profile 에 내용 추가(안할 경우 명령 실행 시 -m 으로 따로 메세지를 넣어 주면됨)

쉘접속 사용자의 .bash_profile 파일을 열어서 아래 내용 추가


SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR


7. trunk, tags, branches 생성

svn mkdir svn://localhost/repo/trunk

svn mkdir svn://localhost/repo/tags

svn mkdir svn://localhost/repo/branches


6에서 에디터를 설정 안했을 경우에는 아래와 같이.

svn mkdir svn://localhost/repo/trunk -m "생성메세지"


8. svn 데몬 설정 및 실행

yum 으로 설치 했을 경우 옵션 파일 /etc/sysconfig/svnserve 를 열어 아래와 같이 입력

OPTIONS="--threads --root /svn --listen-host 0.0.0.0"

service svnserve start


9. 참고 : svn 명령어


새 프로젝트에 파일 추가하기(Import)

D:\sampe\test 폴더를 만들고 readme.txt 파일을 만든 후 다음과 같이 svn import 명령을 실행한다.

svn import D:\sample\test svn://localhost/repo/trunk -m "readme.txt 파일 추가"


test폴더에서 import를 했다고 해서 import 폴더에 있는 파일들의 버전이 관리되지는 않는다. Subversion으로 관리하려면 프로젝트 저장소에서 체크아웃을 해야만 한다.

어차피 체크아웃을 해야 하니 새로 만든 프로젝트 저장소를 체크아웃한 뒤 add 명령으로 파일이나 디렉토리를 추가하고 커밋하는 방법을 사용하기도 한다.


프로젝트 저장소에서 소스 가져오기(Checkout)

svn co svn://localhost/repo/trunk


프로젝트 저장소에 소스 추가하기(Add)

svn add svn://localhost/asiavant/trunk

svn add로 추가한 뒤 커밋을 해줘야만 변경사항이 저장소에 반영된다.(svn ci, svn commit)


변경사항을 저장소에 반영하기(Commit)

svn ci svn://localhost/repo/trunk

파일을 변경하였거나 추가한 뒤에는 커밋을 해야만 저장소에 변경사항이 반영된다.


최신 소스 받아오기(Update)

svn up svn://localhost/repo/trunk


다른 명령들

로그 보기(Log): svn log

변경사항 확인하기(Diff): svn di

수정사항 되돌리기(Revert): svn revert

수정한 사람 보기(Blame): svn blame

파일, 디렉토리 잠그기(Lock): svn lock

파일, 디렉토리 잠금 풀기(Unlock): svn unlock

파일, 디렉토리 이름 바꾸기(Rename): svn rename

소스 가져오기(Export): svn export

소스 복사하기(Copy) - 브랜치(Branch)와 태그(Tag): svn copy

브랜치(Branch)와 태그(Tag) 전환하기(Switch): svn sw