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
참조
최종 수정 : 2019-10-30