IT/ETC

SVN 명령어

Dukejin 2015. 6. 3. 17:00

참고 자료 : SVN(Subversion) 사용 HOWTO


본 문서는 위 참고자료에서 필요한 부분만 요약한 것입니다. 설치 과정과 용어는 참고 자료를 참조하세요.

동작 환경: CentOS 4.6, MS Windows XP



저장소 만들기(root)

$ mdir /home/svn; cd /home/svn

$ svnadmin create --fs-type bdb sample (버클리 DB)

또는

$ svnadmin create --fs-type fsfs sample (파일 시스템)



svnserv 설정(root)

$ svnserve -d -r /home/svn/

$ vi /home/svn/sample/conf/svnserve.conf (편집은 참고 자료 "4.3.1 svnserve에서 ID로 사용자 인증" 참조)

$ vi /home/svn/sample/conf/passwd (편집은 참고 자료 "4.3.1 svnserve에서 ID로 사용자 인증" 참조)



기본 디렉터리 만들기(root)

$ svn mkdir svn://localhost/sample/trunk

$ svn mkdir svn://localhost/sample/branches

$ svn mkdir svn://localhost/sample/tags



에디터 설정(user)

$ vi ~/.bash_profile 

SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR



명령어(user)

import: 처음 저장소에 소스 저장            $ svn import directory_root_name svn://localhost/sample/trunk

checkout(co): 소스 받기                       $ svn checkout svn://localhost/sample/trunk directory_root_name

update: 최근 내용으로 수정                      $ svn update

commit: checkout한 소스 수정 후 저장        $ svn commit

log: 저장소 변경 log 확인                          $ svn log

                                                            $ svn log -r n (n 로그 출력)

                                                            $ svn log -r n:m (n ~ m 로그 출력. 역순 가능)

                                                            $ svn log -r file_name (file_name 로그 출력)

                                                            $ svn log -v [-r n] [file_name] (A(추가)/M(수정) 정보 출력)

                                                            $ svn log -v -r n file_name (A(추가)/M(수정) 정보 출력)

diff: 변경된 소스 비교                               $ svn diff

                                                            $ svn diff -r n file_name

                                                            $ svn diff -r n:m file_name

blem: 한 소스 파일에서 변경자 보기           $ svn blem file_name

                                                            $ svn blem -r n file_name

lock: 다른 사용자가 변경할 수 없도록 잠금   $ svn lock file_name

unlock: 잠금 파일 풀기                             $ svn unlock file_name

add: 파일 추가. commit 필요                     $ svn add file_name

export: 순수한 소스만 받기                   $ svn checkout svn://localhost/sample/trunk directory_root_name



Branch 하기

Branch 만들기

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

$ cd directory_root_name

$ svn copy trunk branches/directory_name

$ svn commit


Branch된 소스 받기

$ svn checkout svn://localhost/sample/branches directory_root_name


Branch에서 수정한 소스를 trunk에 반영

$ svn mearge -r n:m file_name (n과 m사이 차이점을 trunk에 반영)

$ svn commit

$ svn update


Tag 하기

Tag 만들기

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

$ cd directory_root_name

$ svn copy trunk tags/0.1  (버전을 입력)

$ svn commit


소스 릴리즈

$ svn export svn://localhost/sample/tags/버전 directory_root_name



백업 및 복구

백업

$ svnadmin dump sample > sample.dump


복구

$ svnadmin create sample

$ svnadmin load sample < sample.dump