Subversion 서브버젼 소스연동 방법
글쓴이: koogi / 작성시간: 화, 2007/07/10 - 3:26오후
안녕하세요!
현재 Subversion으로 + subclipse에서 연동하여 서브버젼을 쓰고있습니다,
서브버젼은 1.4.4버젼을 설치하였고요.
다름이 아니라
---Trunk
------aproject(폴더)
---------abc.java(파일)
---------bbc.java(파일)---Branches
------KBproduct(폴더)
---------aproject(폴더)
-----------abc.java(파일)
--------------bbc.java(파일)---Tags
위와같은 트리구조에서 트렁크에 aproject를 카피해서 브래치폴더에 카피를 했습니다.(서브버젼은 브랜치나, 태그의 기능이 카피(복사)의개념으로 바뀌었으니...)
그런데 문제는 트렁크의 abc.java를 수정하면 브랜치의 abc.java에도 그 수정이 자동적으로 변경되게 하는것과
브랜치의 abc.java의 파일을 수정했을시에는 트렁크의 abc.java에는 아무런 수정(영향,변화)없게 할려면 어찌해야하나요.
그냥으로 안되던데요. 고수님들 부탁드립니다.
감사합니다.
Forums:
안녕하세요. koogi님에
안녕하세요.
koogi님에게 기본적인 의문이 있습니다.^^
koogi님이 원하시는 기능이 왜 필요하신거죠?
일단 trunk, branches, tags로 분리를 한 후에는 전혀 다른 트리를 타게 되는 것입니다.
설령 trunk에서 변경된 내용이 그대로 branches에 반영이 되어야 한다고 하더라도,
엄연히 다른 tree이므로 branches에서 직접 작업해 주어야 합니다.
이럴때 svn merge를 사용할수 있습니다.
1. trunk에서 작업한 결과를 branches에 반영하고자 할때에는
branches 쪽에서 svn merge 한후에 다시 commit 을 하셔야 합니다.
svn merge 가 자동으로 commit 해 주지 않는 이유는 최종적인 merge의 결과는 사용자에게 있기 때문입니다.
2. branches에서 작업한 결과는 trunk에 반영되지 않습니다.
서로 다른 tree를 자동으로 간섭(?)하는 행위는 버전컨트롤의 관점에서는 금기(?)사항입니다.
감사합니다.
제가 구상하는건 이거거든요..
트렁크에서 ABC라는 프로젝트를 만들다가, 가나다 회사에서 이걸 커스텀 마이징 해주시오.
해서 원본소스를 나둔채 그걸 브랜치를 카피해서 가나다 회사 전용소스를 구현하는거죠...
물론 시간이 흘러서 버그가 발견되어서 트렁크의 ABC프로젝터의 소스를 수정하였습니다.
그런데 당연히 가나다의회사의 개발소스도 수정을 해야겠지요. 그럼 굳히 머지기능이 아닌
변경된 사항만 변경이 된다면.. 얼마나 좋겠냐는건데.. 그게 원래 안되는건가요?
CVS나 다른(소스인사이트, 세레나) 형상관리에서는 이기능이 된다고 하는데요. 그런기능이 정말 있나요?
답변부탁드립니다. 감사합니다. 꾸벅
저도 skalsla님
저도 skalsla님 말씀처럼 다른 branch로의 자동반영은 별로 추천하고 싶지 않네요.
merge는 손으로 하는게 여러모로 좋을 것입니다. 반복(중복?) 금지의 원칙에도 어긋날 것이구요.
여러 프로젝트에 공통적인 모듈은 따로 뽑아서 관리하는 것을 추천합니다.
다만, 기술적으로는 불가능하지는 않을 듯합니다.
python script로 commit 후에 후처리(post commit hook이던가?)를 하는 것을 본적이 있습니다.
sf.net 같은데서는 소스 정리(플랫폼별 개행 문자 통일 등)를 위해 활용하고 있는 듯합니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
댓글 달기