정확하게 이해하면 "FOO의 CVS 개정 X.Y를 포함하는 최초의 자식 커밋은 무엇입니까?"라는 질문에 대답하는 방법이 필요합니다. 당신이 cvs2git 자세한 정보 출력 ("-v")을 설정하면
후, 각 힘내에 추가되고있는 CVS 파일 수정이 커밋 CreateRevsPass 동안 표시 cvs2git :
CVS Revision grouping:
Time: Fri May 23 02:31:36 2003
Creating Subversion r23 (commit)
proj/default 1.2.2.1
proj/sub1/default 1.2.2.1
proj/sub2/subsubA/default 1.1.2.1
이 가까운 것 네가 원해. 그러나 의사 - Subversion 개정 번호 (예 : "r23")를 Git 커밋 해시로 매핑하는 쉬운 방법이 없으므로 테이블을 생성하는 데 충분한 정보가 아닙니다. 실제로 cvs2git은 Git 해시 자체를 생성하지 않기 때문에 추상적 인 형태로 커밋을 만들고 해시를 계산하는 "git fast-import"에 씁니다. 난 그냥 "표시는"해당 즉, 조금 더 정보를 방출하는 OutputPass 원인 cvs2svn의 트렁크 버전을 변경했다
내가 할거야 무엇
Tellya ... 어떤 의사에 - 버전 개정 번호. 위의 출력은 다음과 같습니다 커밋 :
Writing commit r23 on Branch('B_MIXED') (mark :1000000021)
마크 "1000000021", 차례로하는 자사의 마크를 작성하는 "자식 빠른 가져 오기"를 요청하여 망할 놈의 SHA-1으로 변환 할 수 있습니다 파일이과 같은 줄에 대한 결과 파일에
cat ../git-blob.dat ../git-dump.dat | git fast-import --export-marks=FILENAME
봐 :
:1000000021 0aa255270fbb94ad691d5391a6d37c2ee6d78b03
있는 당신이 망할 놈의 해시를 읽을 수 있습니다.
이 정보를 모두 모으는 데 필요한 작업이 조금 있지만 지금은 적어도 의이어야합니다.
이 방법은 CVS 파일 개정판이 들어있는 첫 번째 자식 커밋 만 알려줍니다. 아니요은 해당 파일 개정판이 다른 분기에 병합 된시기를 알려줍니다. 사실, CVS와 Git 사이의 임피던스 불일치로 인해 Git commit ancestry 그래프에 의존해서 정보를 얻을 수 없습니다. 따라서 이것을 완벽하고 편리한 기능으로 만들기 위해해야 할 일이 더 많습니다.
희망이 있습니다.