2012-03-08 5 views
3

예, 저는 CVS를 포기해야한다는 것을 알고 있습니다.하지만 내 결정을 내릴 수는 없으며 CVS는 '레거시'지원으로 인해 잠시 동안 머무를 것입니다. 그러나 1 단계는 git 컨텍스트에서 repo를 표시하는 것입니다. 이런 이유로 나는 CVS -> '읽기 전용'Git을 먼저 동기화하고 싶다.어떻게 CVS와 git 저장소를 동기화 상태로 유지할 수 있습니까? 이 스크립트를 관리하는 데 도움이되는 스크립트는 무엇입니까?

그러면 git repo의 변경 사항을 수동으로 CVS에 넣을 수 있습니다.

어떤 도구를 사용하면이 기능을 사용할 수 있습니까? 어느 것이 가장 좋습니까? 할 수없는 일 (모든 CVS 항목은 힘내로 포팅 될 수 있으며, 나는 체계적으로 그 반대로 할 필요가 없다.)

감사합니다.

답변

3

이미 몇 가지 답변이 있습니다. 예를 들어 here입니다. 나는 작은 복잡하지 않은 저장소의 숫자에 대해 cvsimport로 빌드 된 git 's를 사용했으며 이것이 정상적으로 작동합니다. 그러나주의 깊게 확인하거나 스크립트에서 그렇게해야합니다. 하나의 커다란 저장소에서 CVS에서 파일을 제거한 변환 오류를 발견했으며이를 git mirror에 반영하지 못했습니다. 또한 CVS에서 공급 업체 지점을 올바르게 가져 오지 못하는 것으로 입증되었습니다.

결국 나는 cvs2git이 (가) 더 안정적이라고 찾았습니다. 그러나이 도구는 증분 변환을 지원하지 않습니다. 그러나 전체 cvs2git 변환을 수행 한 다음 결과를 진행중인 미러로 밀어 넣으면 해결할 수 있습니다. 이점은 git 사용자가 미러 브랜치에 커밋하지 않는 한 필요한 경우 작업 브랜치를 푸시 할 수 있다는 것입니다. 이것은 상당히 큰 저장소 (10 년 동안의 작업, 50 만 LOC)에서 약 1 년 동안 잘 작동했습니다.