2008-10-01 6 views
2

: - 지점
tcm-6.1.0 -cvs2svn을 사용할 때 지점 및 태그가 동일한 이름으로 해석되도록 심볼의 이름을 바꾸는 방법은 무엇입니까? 내가 (다른 사람의 사이에서) 다음과 같은 기호가있는 CVS 저장소 변환하는 작업입니다

tcm-6.1.0-branch 표준 변환의 cvs2svn를 사용하여 태그

는 적절하게 식별합니다. 그러나 변환 중에 정리를하고 싶습니다. 특히 svn의 'branches'dir에있을 것이므로 분기 기호의 중복 '-branch'부분을 삭제하고 싶습니다. tcm-6.1.0이 모두 있기 때문에 모든 파일에 대한 "기호에 ... 'TCM-6.1.0'의 여러 정의 오류"

RegexpSymbolTransform(r'(.*)-branch', r'\1') 

지금 내가 끝낼 : 나는 프로젝트의 symbol_transforms에 다음을 추가 가지와 꼬리표. 이 문제점을 초래하는 여러 CVS 기호 쌍이 있습니다.

소스 기호가 다르며 대상 디렉토리가 다르므로이 작업이 가능해야합니다. 누락 된 것이 있거나 단순히 cvs2svn의 단점입니까?

이러한 기호의 이름을 각각 따로 유지하고 지점과 태그가 같은 이름으로 바뀌게하려면 어떻게 이름을 바꿀 수 있습니까?

-

나는 변환 규칙에서이 문제 기호를 제외하고 차라리 변환 시간에 그것을 할 거라고하지만, 이후에 손을 이동하려고합니다 주위에 아무 일이없는 경우.

답변

1

RegexpSymbolTransform은 저장소 파일을 구문 분석하는 동안 너무 낮은 수준에서 작동합니다. 따라서 SymbolTransform을 사용하여 두 개의 심볼에 같은 이름을 지정하면 하나의 동일한 심볼로 간주됩니다.

변환 후에 분기와 태그의 이름을 바꿀 수는 있지만, 역사 탐색에 좀 더 복잡하게 남는 명시적인 SVN 커밋이 필요합니다.

대신 원래 이름으로 분기를 변환해야하지만 cvs2svn에 SVN 경로 /branches/tcm-6.1.0에 저장하도록 지시해야합니다. 그런 식으로 심볼은 원하는 이름을 가진 SVN 브랜치의 올바른 위치에있게 될 것이지만 비슷한 이름의 태그와는 다른 것으로서 여전히 cvs2svn에 의해 다루어 질 것입니다.

symbol-hints.txt 같은 라인을 포함하는 파일입니다 --symbol-hints=symbol-hints.txt 명령 줄 옵션 또는 SymbolHintsFileRule('symbol-hints.txt') 기호 전략의 규칙을 사용하여 수행 할 수있는 작업은 다음과 같습니다

. tcm-6.1.0-branch branch /branches/tcm-6.1.0 .

내가 생각할 수있는이 방법의 유일한 단점 of는 자동으로 생성되는 커밋 메시지 중 하나 인 cvs2svn (예 : 분기 만들기)이 원래 분기 이름을 언급한다는 것입니다.

1

cvs2svn은 cvs와 svn 사이에 많은 마법을 만듭니다. 그래서 cvs2svn은 어느 버전이 어느 dir에 속하는지 알 수 없으므로 브랜치와 태그의 이름과 "일치"할 수 없습니다. svnmucc 같은 도구를 사용하여 단일 커밋에서 나중에 내 이름을 바꿉니다. 그래서 당신은 하나의 커밋을하고 모든 것이 제자리에 있습니다.