TortoiseSVN의 merge 기능이 정상 인가요?
머지라는게 차이점을 반영하는게 아닌가요?
trunk와 branches에서 각각 작업을 하다가 branches에 적용된 사항을 trunk에 적용하려고 할때 어떻게 해야 하나요?
TortoiseSVN을 이용해서 머지를 할때
trunk 작업 디렉토리에서 메뉴중 머지를 선택하고
시작은 trunk의 URL
끝은 branches의 URL을 선택하고
머지를 하면 차이점이 반영이 된다기보다
trunk에 적용된 소스는 모두 사라지고 branches 소스로 덮어 써버립니다.
동일한 trunk 소스로 branches를 만든후에
trunk에는 A라는 코딩을 하고
branches에는 B라는 코딩을 하였을때
B의 내용을 trunk에 적용하려고 머지를 하면
A와 B의 차이점을 C라고 한다면
trunk에 C가 적용이 되는게 아니라 A는 사라지고 B만 적용이 됩니다.
시작과 끝을 바꿔서 해도 한쪽이 사라지는건 마찬가지 입니다.
동일한 부분이라면 충돌이 나고 다른 부분이라면 turnk에서 변경했던 소스가 남아 있어야 하지 않나요?
trunk 작업 사본에서
시작 svn://10.10.10.212/AEBmega/trunk/src/app
끝 snv://10.10.10.212/AEBmega/branches/MergeTest/src/app
머지 결과 : = 브랜치의 소스
서브버전 책을 보면 "2개의 URL을 넘겨주면 2개의 소스에서 서로 다른 내용을 현재의 작업 디렉토리에 통합한다."라고 나와 있는데 여러가지 경우로 테스트롤 해보면 "끝으로 지정한 소스만 남는다." 입니다.
subversion의 svn merge 명령어를 이용해도 원하는 결과가 나오질 않습니다.
subversion과 TortoiseSVN에서 merge 개념과 제가 생각하는 merge 개념이 다른 건가요?
현재는 소스 비교 하는 프로그램이나 merge후 확인 창에서 변경된 파일을 선택하여 수동으로 merge를 하고 있습니다.
merge 기능에 대해서 조언 부탁 드립니다 ^^
현재 TortoiseSVN으로 merge작업을 잘 사용하고 있습니다.
현재 TortoiseSVN으로 merge작업을 잘 사용하고 있습니다.
제가 느끼기에는 별 다른 문제가 보이지 않습니다.
최초의 trunk의 리비전 A
trunk의 A 리비전에서 branches로 B라는 리비전을 branches함.
trunk의 A에서 변경된 리비전 C
branches의 B에서 변경된 리비전 D 라고 했을 때.
trunk의 현재 리비전인 C에 branches의 변경사항을 merge한다고 하면
시작은 branches의 B에서 branches의 D까지가 아닌가요?
만약 시작은 trunk의 C그리고 끝은 branches의 D가 되면.
branches의 D에는 당연히 C의 변경사항은 포함되어 있지 않음으로 merge했을 때 trunk의 C 리비전의 변경사항은 사라져 버리는 것 아닌가요?
아~ 잘못 생각하고 있었네요.
답변 주신 내용을 보니 잘못 생각하고 있었네요.
방금 테스트를 해보니 잘 동작이 됩니다.
한동안 수작업 하느라 힘들었는데 감사합니다. ^^
------------------------------------------------------------------------
'뭐든지 하는 사람'부터 시작해야 '뭐든지 할 수 있는' 사람이 된다.
댓글 달기