아토믹 커밋
빠름
커밋별 통 리비전
SVN_EDITOR=/usr/bin/vim
exprot SVN_EDITOR
trunk // 주 작업 디렉토리
branches // 복사해서 만든 마이너 버전 마일스톤. 자기 폴더는 걍 여기 따는게 상책
tags // 릴리즈 스냅샷
svn mkdir http://…../svn/test/trunk
svn import 디렉토리 트렁크주소
svn co 트렁크주소 내디렉토리 // 사실은 트렁크만 받지 말고 통으로 받자.
svn update
svn update -r 3 dd.c
svn commit
svn commit -m “아 샹 뭐 이리 넣으라는게 많냐”
svn log
svn log -r 4:1
svn log -r 4:1 -v
svn log –stop-on-copy // 카피가 일어난 지점까지만 로깅, 즉 카피가 일어난 시점의 리비전 확인
svn diff
svn diff -r 4 dd.c
svn diff -r 4:3 dd.c
svn blame
svn blame dd.c
svn blame -r 4 dd.c
svn lock dd.c
svn add dd.c // 커밋 필요
svn rename dd.c aa.c // 커밋 필요
svn export 트렁크주소 내디렉토리
svn copy trunk branches/새브랜치이름 // 커밋 필요 서버안에서 싼 카피 cheap copy
svn merge -r 4:5 브랜치주소 // 브랜치의 것을 받아와서 로컬 (트렁크)과 병합, 커밋하면 병합된 것이 트렁크에 올라가겠지?
// 브랜치에서 수정하여 커밋(버전 5), 로컬 트렁크는 여전히 버전 4
// 트렁크 체크아웃 후 로컬 트렁크 안에서 머지를 때리면 트렁크 안의 버전 4에 브랜치의 버전 5가 머지됨
// 다시 트렁크 체크아웃하면 트렁크는 머지된 버전 5가 올라감
svn log –stop-on-copy –> 브랜치 딴 버전 확인
svn merge -r 4:HEAD –> 브랜치에서 작업한 내역 커밋하면 그 버전은 최신버전인 HEAD가 됨. 카피 딴 버전인 리비전 4에 브랜치를 병합함
svn merge –dry-run 트렁크주소 브랜치주소 // 드라이런은 그냥 시도만 함
svn resolved // 충돌 해결한 후에만.
// 브랜치 작업이 종결되면 트렁크에 병합 후 새로 브랜치 떠서 작업할 것. 브랜치 발생한 리비전을 파악하기 쉽게 하기 위함.
svn copy trunk tags/0.1
// 0.1 릴리즈. 태그 안에서는 작업하지 마요..
// 0.1 릴리즈 후 마이너 버그 발견했다면 트렁크에서 0.1.1로 브랜치 한 후
// 0.1.1 안에서 디버깅 한 다음
// 트렁크에 병합하고
// 태그의 0.1.1로 카피 떠서 릴리즈
svn export 태그 주소
// export 는 태그만 받아요.. 제발.. 트렁크 퍼가지 마요..
svnadmin dump 저장소 > ddd
svnadmin load 저장소 < ddd
svnsync 는 그 때 그 때 찾아서 설정해 놓고 잊으삼
svn delete 브랜치주소
svn copy -r 4 브랜치
svn co -r 3 …
http://www.pyrasis.com/main/Subversion-HOWTO http://binggrec.tistory.com/104
머지 할 땐
http://wiki.kldp.org/wiki.php/SubversionBook/BranchingAndMerging