2013-11-23 4 views
2

두 개의 공급 업체 지점이 포함 된 디렉토리가있는 CVS 저장소가 있습니다. 초기 코드는 한 소스에서 가져 와서 X라는 벤더 이름으로 체크인했습니다. 몇 년 후 다른 벤더 지점 이름 Y와 새 코드를 체크인했습니다.CVS 공급 업체 지점 가져 오기는 어떻게 정리합니까?

rcs 파일 (FILE, v)을 텍스트 편집기, X : 1.1.1, 몇 개의 태그 ... 그리고 Y : 1.1.1을 보자.

이것은 CVS를 사용하면서 알고있는 문제는 아니지만 지금은 cvs2svn을 사용하여 Subversion으로 마이그레이션하십시오.

WARNING: in '/home/cvs/src/contrib/one-true-awk/FILES,v': branch '1.1.1' already has name 'Y', cannot also have name 'X', ignoring the latter

적으로는, 내가 전체 역사에 대한 새로운 공급 업체 태그 Y를 사용하고 싶습니다,하지만 난 또한 멀리 갈 수 있도록 기꺼이 :

나는 다음과 같이 cvs2svn에서 오류가 발생할 수 이전 태그를 사용하십시오. 어쨌든, 나는 이것을 정리해야 cvs2svn이 저장소를 Subversion으로 변환 할 수 있습니다.

내가 할 수있는 v 파일에서이 난장판이나 수동 단계를 복구하기 위해 CVS의 파일에서 실행할 수있는 명령이 있습니까? 나는 새로운 Y 지선을 지우려고했으나 커밋의 번호 매김 때문에 혼자서 작동하지 않는다. 두 번째 가져 오기로 인해 1.2 개정판이 작성되어 cvs2svn도 실패합니다.

+0

참으로 까다로운 사업입니다. ① 벤더 브랜치 번호는 홀수 여야하며 모든 소스마다 다른 벤더 브랜치를 사용합니다 (예 : $ parent_bsd에 1.1.1, $ parent_of_parent_bsd에 1.1.3, for $ parent_of_parent_bsd에 1.1.101). FSF, XF86은 1.1.103, 스라소니는 1.1.109 등) ⇒ 최종적으로 벤더 (지점 태그와 번호)의 프로젝트 글로벌 등록을해야했습니다 ... – mirabilos

답변

0

나는 cvs2svn 사용자 메일 링리스트에 대해 질문했다.

I don't believe that this error can come from importing twice. AFAIK each time you import you would create a new vendor branch; e.g. 1.1.1, 1.1.3, etc. (the last number is always odd for vendor branches), and each vendor branch would get its own symbolic name. The situation you are experiencing is that you have only one vendor branch, 1.1.1, and it somehow has two symbolic names, 'X' and 'Y'.

If you tell cvs2svn just to ignore the unwanted symbol name, then the conversion should go through without complaints. To do this, you need to start cvs2svn via the options-file method and then use a IgnoreSymbolTransform. See cvs2svn-example.options for documentation.

If you want to be super-careful, you might first want to verify that the symbol name that you are ignoring is really redundant in every file. Or, I think it would also work to transform the unwanted symbol name into the wanted symbol name, because cvs2svn ignores symbols that appear twice with the same value. This would require something like

RegexpSymbolTransform(r'X', r'Y')

난 후 여분의 상징을 숨기기 위해 IgnoreSymbolTransform을 사용 : 마이클 Haggerty에서 다음과 같은 응답을 받았습니다.

또한 HEAD에서 패치 된 파일로 인해 2 차 오류가 발생하여 최신 가져 오기가 발생했습니다. 강제로 파일을 커밋하여 머리에 다시 가져올 수있었습니다.

오류 : 파일 '/ home/cvs/src/contrib/one-true-awk/FIXES, v'에 기본 분기가 있습니다. = 1.1.1 및 개정판 1.2