2012-04-19 4 views
1

CVS에서 SVN으로 최근 마이그레이션을 cvs2svn 도구를 사용하여 수행했습니다. 내 프로젝트 중 하나의 새롭게 마이그레이션 된 프로젝트에서 최신 버전은 지점 A (상위 디렉토리)의 일부입니다. 이 프로젝트 내에서 최신 버전의 다른 브랜치는 브랜치 B. 그래서 기본적으로 트렁크에는 내 메인 프로젝트의 최신 버전이없는 하위 프로젝트가 있습니다.CVS에서 SVN으로의 마이그레이션 및 분기 내 분기

일단 부모 폴더 (지점 A)를 체크 아웃하면 내 서브 프로젝트를 탐색 할 것입니다.> 오른쪽 클릭> CVS> 업데이트 특별판> 지점 B (지점 B에는 최신 서브 프로젝트가 있음)를 선택하십시오. 이것은 서브 프로젝트의 최신 버전을 체크 아웃 할 것이고 메인 프로젝트의 최신 버전을 갖게 될 것입니다.

그러나 SVN에서는이 옵션이 표시되지 않습니다. 내가 아는 한 SVN은 분기가 아닌 개정판으로 만 업데이트 할 수 있습니다. 나는 SVN을 처음 사용하기 때문에 내가 틀렸다는 가능성이 더 크다. CVS 시나리오에서 내가하려고했던 일을 할 수있는 방법이 있습니까?

메인 프로젝트 (지점 A)를 체크 아웃 한 다음 서브 프로젝트를 별도로 체크 아웃하는 방법 (지점 B)에 대한 라운드를 알아 냈습니다. 그런 다음 첫 번째 체크 아웃 (상위 프로젝트 - 지점 A)에서이 하위 프로젝트를 삭제하고 하위 프로젝트의 두 번째 체크 아웃 버전으로 바꿉니다.

답변

1

svn externals으로 목표를 달성 할 수 있습니다. 하위 프로젝트는 다른 repo에 대한 외부 프로젝트입니다.

0

스파 스 가지를하려고 한 것 같습니다. 스파 스 브랜칭에서 브랜치를 기반으로 하나의 지점 (지점 A이라고 부름)과 다른 지점 (지점 B이라고 함)에 지점 A의 변경 사항 만 넣고 전체 지점.

분기를 수행하는 데 오랜 시간이 걸리기 때문에 CVS에서이 작업을 수행하는 경우가 있습니다. 소규모 프로젝트의 경우 20 분, 대형 프로젝트의 경우 최대 1 시간이 소요됩니다. 그러나 추적하기가 매우 어려워지고 사용하는 사이트에서 체크 아웃을 수행하는 방식을 추적하지 못하는 것으로 나타났습니다. 연속 빌드 시스템은 CVS Sparse Branching 설정도 처리 할 수 ​​없습니다.

Subversion은 Sparse Branching을하지 않지만 (적어도 매우 쉽게) Subversion의 분기는 빠르고 간단합니다. 분기 만들기에는 1 초도 걸리지 않습니다. Subversion에서는 브랜치 A을 만들고 브랜치 B의 분기점 A으로 만들어야합니다. 그런 다음 모든 차이점을 지점 A지점 B지점 A에 넣습니다. 분기로 변경분기 B에 병합되어야합니다.

스파 스 분기의 문제는 파일이 두 분기에서 변경되면 절대로 선택되지 않는다는 것입니다. 병합을 사용하면 두 분기의 변경 사항이 브랜치 B의 파일에 추가됩니다. 그래서 소수의 사이트가 스파 스 분기를하는 이유입니다.

당신은 브랜치에서 새 지점 B을 만든 다음이 새로운 지점 B에 이전 지점 B에 있고 그것을 확인 모든 변경 사항을 확인해야합니다.그런 다음 지점 B에는 필요한 모든 파일이 포함되며 연속 통합 시스템을 사용할 수 있으며 파일 체크인 및 체크는 한 단계 작업입니다.

+0

답장을 보내 주셔서 감사합니다. switch 명령을 사용하여이 작업을 수행했습니다. 내가 원하는 것처럼 하위 프로젝트를 다른 지점으로 전환했습니다. –