지난 몇 년간 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
브랜치 활용하기
Email notification 설정
'IT > 형상관리' 카테고리의 다른 글
Jenkins 로 빌드 및 배포 자동화 구성하기 (0) | 2022.05.29 |
---|---|
GitLab 으로 소스코드 관리하기 (0) | 2022.05.29 |
Git 저장소의 커밋 기록에서 대용량 파일을 삭제하기 (0) | 2022.05.10 |
Gitlab root 패스워드 변경 방법 (0) | 2021.06.17 |
레포지터리 이관하기 - Git 저장소(레포지터리) 원격지 변경 (0) | 2021.03.26 |