- 토픽 브랜치와 통합 브랜치에서의 작업 흐름 파악하기
- 3.3 Git 브랜치 - 브랜치 관리
- 버전 관리 시스템 유랑기, 그리고 Git 적응기
- SVN 사용시에 branch와 merge 잘 이용하기
저장소
svn://domain.com/project
- 팀원 단위 진행 순서로 구성.(로컬 저장소 대용)
- 팀원의 개별 폴더를 생성해서 관리하는 방식은 svn특성상 많은 문제가 발생 할 수 있다.
- 개발자의 저장 폴더와 branches/release 간 commit / update 가 빈번하게 일어나며,
- rev 관리가 되지 않을 가능성이 99%이고,
- 개발자의 이해도에 따라서 관리자체가 되지 않을 수 있다.
- 웬만하면 개발자 폴더를 버리고 branches/release 폴더를 기준으로 관리하는게 바람직하다
- svn://domain.com/project/trunk
- svn://domain.com/project/branches
svn://domain.com/project/developer/dev1svn://domain.com/project/developer/dev2- svn://domain.com/project/tags
- svn://domain.com/project/release
- svn://domain.com/project/hotfix
- 개발 프로젝트 단위.
- svn://domain.com/project/branches/smalldevname1
- svn://domain.com/project/branches/smalldevname2
Developer Branch 생성
개발자 단위로 개인 Branch 생성후 개발 진행
branches/release 기준 개발
# Branch/release Create svn copy svn+ssh://domain.com/project/trunk \ svn+ssh://domain.com/project/branches/release \ -m "Create branches/release" # Branch CheckOut svn co svn+ssh://domain.com/project/branches/release release
최신 Trunk를 본인의 로컬에 적용
Commiter가 Trunk 업데이트 공지 시 Developer는 Trunk를 Branch에 병합해서 최신상태를 유지.
(혹은 수시로 확인해서 최신상태로 유지한다.)
# Branch 에서 trunk를 Branch에 병합 cd release svn merge --dry-run ^/trunk svn merge ^/trunk # 병합내용을 Branch에 Commit svn ci -m "Merging release branch with trunk"
본인의 작업결과물을 Trunk에 통합
Commiter와 Developer가 다를 경우 Developer가 자신은 Branch를 최신으로 Commit 후 병합요청,
그 후 Commiter가 Merge, Commit 진행
# 최신 trunk를 release로 CheckOut svn co svn+ssh://domain.com/project/trunk trunk # release 병합 테스트 --dry-run cd trunk svn merge --dry-run ^/branches/release # release를 trunk에 병합, 충돌해결 svn merge ^/branches/release # 병합결과 Commit svn ci -m "Merging release work release into main trunk!"
로컬에 직접 병합, 충돌 해결 후 Commit
svn co svn://domain.com/project/trunk trunk cd trunk svn up svn merge ^/branches/release # 충돌해결 svn ci -m "Merging release work release into main trunk"
Hotfix
급하게 변경되거나 수정해야 할 사항이 있을 경우 hotfix에서 처리
# Hotfix Branch Create svn copy svn+ssh://domain.com/project/trunk \ svn+ssh://domain.com/project/branches/hotfix \ -m "Creating Hotfix" # Branch CheckOut svn co svn+ssh://domain.com/project/branches/hotfix # 이 후 Trunk에 적용
반응형
'vcs > svn' 카테고리의 다른 글
svn checkout ignore directory/folder (0) | 2017.03.30 |
---|---|
svn hooks를 이용한 release, trunk 자동 업데이트 (0) | 2017.03.24 |
SVN Conflict(충돌) Option (0) | 2016.06.10 |
propset propedit (0) | 2016.01.05 |
SVN_EDITOR (0) | 2015.12.17 |