SVN 형상관리


SVN이란?

Svn(Subversion)은 형상관리 도구로 프로그램 파일을 버전별로 관리할 수 있다.

checkout (co)

저장소(repository)에서 로컬 작업공간으로 소스를 받아온다.

사용법

svn checkout [SVNURL] [체크아웃할대상]

예시

$ svn checkout https://desktop-8kkel5e/svn/kimkc/
Checked out revision 0.

add

SVN에 관리할 파일이나 디렉토리를 추가한다. 추가 후에는 commit을 해줘야 저장소에 반영 된다.

사용법

svn add [추가할 파일명]

예시

$ svn add Test.java
A         Test.java
$ svn commit
adding Test.java

commit (ci)

로컬에서 수정된 내용을 저장소에 적용시킨다.

사용법

svn commit [커밋할파일명] -m [로그로 남길 메세지]

예시

$ svn commit Test.java -m "test"
Adding         Test.java
Transmitting file data .done
Committing transaction...
Committed revision 1.

update (up)

저장소(repository)의 최신 내용으로 로컬 소스를 갱신 한다.

사용법

svn update

예시

$ svn update
Updating '.':
At revision 3.

delete(del, remove, rm)

SVN에 관리할 파일이나 디렉토리을 삭제한다. 삭제 후에는 commit을 해줘야 저장소에 반영 된다.

사용법

$ svn delete [SVN관리목록에서 삭제할 파일명]

예시

$ svn delete text.txt
D        text.txt
$ svn commit
Deleting test2.c

svn 변경된 파일 상태 확인

사용법

svn status

repository url 확인

사용법

$ svn info
Path: .
Working Copy Root Path: D:\svn-file-test\kimkc
URL: https://desktop-8kkel5e/svn/kimkc
Relative URL: ^/
Repository Root: https://desktop-8kkel5e/svn/kimkc
Repository UUID: 08d25a28-c52d-f14b-9aa0-5c24a007a8d5
Revision: 0
Node Kind: directory
Schedule: normal
Last Changed Rev: 0
Last Changed Date: 2019-07-30 09:50:14 +0900 (화, 30 7 2019)

log

Repository에 파일 수정 이력 조회한다.

사용법

$ svn log [PATH]

더 자세히 보려면

$ svn log -v
$ svn log
------------------------------------------------------------------------
r3 | kimkc | 2019-07-30 13:52:22 +0900 (화, 30 7 2019) | 1 line

test3
------------------------------------------------------------------------
r2 | kimkc | 2019-07-30 11:14:30 +0900 (화, 30 7 2019) | 1 line

test2
------------------------------------------------------------------------
r1 | kimkc | 2019-07-30 10:00:24 +0900 (화, 30 7 2019) | 1 line

test
------------------------------------------------------------------------
$ svn log -r 30:100 test.c

리비전 번호 30~100 내에서 test.c에 대한 로그를 출력한다.

blame

각 라인을 수정한 사람이 누구인지 확인한다.

예시

$ svn blame sample.c

export

저장소에서 원본 파일만 받아 온다.

사용법

svn export  [SVNURL]  [저장될 장소]

예시

$ svn export  http://svn.bds.fbwotjq.com/www/manager/trunk/ docs_manager

해당 리비젼 소스만 expert

export는 버전관리를 위한 부속 파일들은 제외하고 순수한 소스만 받아오기 때문에, 주로 source release 용도로 사용되게된다. -r 옵션을 지정해서 해당 리비젼의 소스를 받아올 수 있다.

사용법

svn export [SVNURL] [저장폴더] -r [리비젼 번호]

예시

svn export  https://desktop-8kkel5e/svn/www/manager/trunk/ docs_manager -r 186 

import

사용법

svn import [올릴대상] [SVNURL] -m [로그로 남길 메세지]

예시

$ svn import docs_js https://desktop-8kkel5e/svn/www/manager/trunk/ -m "svn import test"

info

현재 연결된 SVN 파일 저장소의 정보를 조회한다.

$ svn info

예제

$ svn info
Working Copy Root path : /home/
URL : http://192.168.0.1/project
Relative URL : ...

update

현재 파일 저장소에 저장된 최신 변경 사항을 받는다.

사용법

svn update

예제

$ svn update
Updation '. :
At revision 1111.

diff

수정된 파일 내용을 비교해 준다.

사용법

svn diff --revision [위에 log에서 확인한 r숫자에서 숫자 부분만] [비교할 파일명]

예제

$ svn diff --revision 1111 test.c
===================================
--- //test log
+++//new log
....

relocate

저장소 URL이 변경되었을 때, 로컬에서 URL을 변경해 준다.

사용법

SVN 1.6 이하

svn switch --relocate {이전 URL} {변경 URL}

SVN 1.6 이상

svn relocate {변경 URL}
$ svn relocate https://svn.devkuma.com/svn/kimkc

svn 현재 버젼 체크

$ svn --version

참조