본문 바로가기
IT/웹로깅

SVN CLI 사용 방법

by blogger 2021. 3. 30.

지난 몇 년간 SCM은 대부분 Git으로 사용되어지고 있는 것 같다. 하지만 간혹 svn을 사용하는 곳도 있고, 이런 경우 레포지터리 이관 작업을 하거나 혹은 기존의 형상관리 시스템을 유지해 두어야 하는 경우도 있다. 신규로 레포지터리를 svn으로 구축할 일이 생기겠냐만은 가끔 필요할 수 있을 것 같아서 정리해 두었던 내용을 기록해 둔다.

Patch & Apply with base64 encoding/decoding

생성

$ svn diff > test.patch                                # Create the path
$ tar cvf test.patch.tgz                               # Compress the patch file
$ base64 test.patch.tgz > test.patch.tgz.base64        # base64 encoding

적용

$ base64 -d test.patch.tgz.base64 > test.patch.tgz         #base64 decoding
$ tar xvf test.patch.tgz                                   # Uncompress the patch file
$ patch -p0 --dry-run -i test.patch                        # Test the applying patch
$ patch -p0 -i test.patch                                  # Apply the patch

trunk branches tags 폴더 생성

$ svn mkdir svn://localhost/sample/trunk --username users
$ svn mkdir svn://localhost/sample/branches --username users 
$ svn mkdir svn://localhost/sample/tags --username users

folders/files 한번에 commit 하기

svn status | grep "^?" | awk '{print $2}' | xargs svn add
svn commit

SVN 연결 끊기 - .svn 삭제

find -name .svn -exec rm -rf {} ;

특정 디렉터리 ignore

$ svn propset svn:ignore cache .

# Check what properties are set
$ svn proplist
$ svn propget svn:ignore

소스 레파리토리에 올리기

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

소스 체크 아웃 하기

$ svn co [SVNURL] [체크아웃할대상]

. 소스 삭제하기

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

소스 커밋하기

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

소스 익스포트 하기 ( svn에서 원본 파일만 받아 온다. )

$ svn export [SVNURL] [추출되어 저장될 장소]

해당 리비젼 소스만 익스 포트 하기

$ svn export \[URL\] \[저장폴더\] -r \[리비젼 번호\]

svn 현재 버젼 체크

$ svn --version

svn 변경된 파일 상태 확인

$ svn status

repository url 확인

$ svn info

기존 소스에서 새로운 파일 이나 폴더 추가

$ svn add \[파일명\]

Repository에 어떤 것들이 변경 되었는지 확인할수 있는 log 명령어

$ svn log

Repository 백업 및 복구

svnadmin dump $REPO\_PATH$ > backup.dump  
svnadmin load $NEW\_REPO\_PATH$ < backup.dump

브랜치 활용하기

http://asbear.tistory.com/entry/SVN-%EC%82%AC%EC%9A%A9%EC%8B%9C%EC%97%90-branch%EC%99%80-merge-%EC%9E%98-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0

Email notification 설정

http://www.pyrasis.com/main/SubversionCommitMail-HOWTO