문제

소스 컨트롤을 사용할 때 일반적인 시나리오는 버전의 릴리스 브랜치와 함께 개발 지점을 갖는 것입니다. 우리는 Head를 개발 지점으로 사용하고 제품의 현재 출시를 위해 EG Release-6-2라는 지점을 사용합니다.

새로운 기능의 개발은 개발 지점에만 적용되지만 버그 수정은 때때로 개발 지점과 현재 릴리스 브랜치에 모두 확인해야합니다. 이것은 때때로 꽤 지루할 수 있으므로, 나는 이것을 달성 할 수있는 실용적인 방법을 찾고 있습니다.

헌신 할 파일이 두 가지에 동기화되면 특히 빠른 "이 분기에 대한 커밋"솔루션을 찾고 있습니다.

(우리는 CVS를 소스 제어 시스템으로 사용하므로 CVS 특정 답변이 좋습니다. 그러나 다른 소스 제어 시스템이 더 나은 방법을 제공 할 수 있는지 여부를 보는 것도 흥미 롭습니다. 클라이언트 측면에서 Eclipse를 사용하므로 Eclipse 솔루션이 있습니다. 좋아요.하지만 자근이 아닌 솔루션이 있다면 괜찮습니다.)

도움이 되었습니까?

해결책

필요한 가장 오래된 릴리스 브랜치에 수정 사항을 적용하십시오. 그런 다음 마지막 릴리스 브랜치에서 헤드로 병합 될 때까지 변경 사항을 다음 릴리스 브랜치로 병합하십시오.

가장 오래된 버전의 제품은 1.0이고 1.1 및 1.5 릴리스도 있다고 가정 해 봅시다. 다음 릴리스의 새로운 기능이 헤드에 추가되고 있습니다. 버그가 1.0에있는 경우 1.0 분기에 수정 사항을 적용합니다. 1.0에서 1.1 지점으로 병합됩니다. 1.1에서 1.5 지점으로 병합되고 마지막으로 1.5 지점에서 헤드로 병합됩니다.

분기에서 지점으로 병합하는 것이 각 분기에 수동으로 수정을 적용하는 것보다 낫습니다.

CV를 사용하면 다음 병합을 수행 할 때 동일한 개정을 포함하지 않도록 병합 된 버전을 수동으로 추적해야합니다.

Subversion을 사용하기로 변경하면 분기에서 지점으로 병합하는 것이 더 쉽습니다. Eclipse의 Subversion 도구는 이전에 병합 한 수정 사항을 추적하여 두 가지간에 반복적 인 병합 작업을 크게 단순화합니다.

CVS의 전복으로 변경하는 것은 쉽습니다 (ISH). 당신은 그런 움직임을 한 첫 번째 사람이 아닙니다.

다른 팁

Awalshe가 말했듯이, 지점간에 합병하는 것이 좋습니다. 병합을 체리-픽시하기 위해 설명 된 방법 CVS를 사용한 실용 버전 제어 아주 좋습니다 :

지점에서 - 태그 (PRE_FOO) 변경하기 전에 변경 후 변경 후 (변경 후)POST_FOO). 그런 다음 트렁크에서 태그를 사용하여 병합합니다.

cvs up -j PRE_FOO -j POST_FOO

SVN에서는 가지 간의 병합이 훨씬 쉽고 안전하며 전체 CVS 기록을 SVN으로 변환하는 것은 사소한 일입니다. CVS2SVN. SVN 1.5 또는 이전 SVN 버전과 함께 사용해야합니다. svnmerge.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top