svn 커스터마이즈드 브랜치 소스 업데이트
글쓴이: DwYoon / 작성시간: 월, 2007/03/12 - 4:21오후
저희 제품 소스는 서브버전을 이용해서, 여러 사이트에 대해 각각의 커스터마이징 브랜치를 만들어 소스를 관리합니다.
--+-- standard | +-- site1 | +-- site2 | +-- site3 | +-- site4
이런 식이고, 각 브랜치는 각 사이트별로 커스터마이징이 된 소스들입니다. 많이 다른 것도 있고, 차이가 미미한 것도 있습니다. 그런데, 시간이 지나면서 각 사이트들이 서로 조금씩 달라집니다. 한가지 버그를 수정하면 다른 소스들도 같이 수정이 되어야 하는데, 그걸 다 무식하게 하나씩 보면서 하다보니 각 사이트별 소스들의 동기화가 잘 안 됩니다. 그림엔 간단한 것 같이 표현됐지만, 하나의 제품이 여러 모듈로 이루어지다 보니, 이 짓을 각각의 모든 모듈마다 다 하는 구조입니다.
수정사항이 있을 때마다 수동으로 하고는 있는데, 더 쉽게 하는 기능이 있을텐데, 몰라서 못 쓰는 것 같아서 질문을 드립니다. 어떻게들 하시죠?
Forums:
svn merge
svn merge 명령을 살펴보세요. 아래는 저희가 사용하고 있는 방법입니다.
대충 위와 같은 코드를 trunk와 모든 branch의 script 디렉토리에 넣어둡니다. 버그를 trunk에서 수정하고, 예를 들어 버전 1000으로 커밋이 되었으면, 이 fix를 적용할 branch마다 작업 사본으로 이동해서,
./script/merge 1000
# test bugfix
svn ci -m 'merge [1000] from trunk' # []는 Trac 링크를 위해...
와 같은 방식으로 작업합니다. 완전히 만족스럽지는 않지만 같은 버그 수정을 수작업이 아닌 "기계적으로" 적용할 수 있다는 점은 괜찮은 것 같습니다.
댓글 달기