다음 스크립트는 두 가지 분기의 가장 일반적인 커밋을 찾으려고 시도합니다. 커밋의 제목은 , , 작성자 및 과 동일해야합니다. 작성일은입니다. 그러나 커밋 일 및 해시은 다릅니다. 이 때문에 git rebase은이 분기를 자동으로 찾을 수 없습니다. #!/bin/bash
lastbr=
lastrest=
revU= # Update
revB= # Bas
나는 큰 CVS 저장소를 cvs2git (cvs2svn 2.4.0 툴링의 일부)과 함께 Git으로 마이그레이션하려하고있다. 따라서 나는 각 프로젝트를 개별적으로 마이그레이션한다. 각 마이그레이션의 시간 소비는 여전히 매우 높습니다. 마이그레이션 자체는 ssh를 통해 연결된 원격 서버에서 진행됩니다. 문제는 마이그레이션 프로세스가 끝날 때까지 기다리지 않고
이전 cvs 저장소를 git로 마이그레이션하려고합니다. 그러므로 나는 cvs2git (cvs2svn 2.4.0)을 사용한다. 내가 손상된 일부 파일이 있습니다 : '유효한 v 파일이 아닙니다. 이러한 문제를 해결하기 위해 rcs 파일 형식을 확인합니다. 오류가 발생할 때마다 '@', 텍스트 영역 또는 전체 개정 델타가 누락되었음을 감지했습니다. 그래서 나는
cvs2svn (cvs2git)을 사용하여 4 일 동안 마이 그 레이션하기 위해 cvs를 사용 중지했습니다. 내 리포지토리의 크기는 12GB이고 아직 통과 중입니다. pass 1: 66238 sec
pass 2: 29.96 sec
pass 3: 6.745 sec
pass 4: 106343 sec
pass 5: 2080 sec
pass 6: 3955
큰 CVS 저장소를 cvs2git으로 GIT로 마이그레이션합니다. 사내 도구의 경우 CVS 개정 번호에서 일부 파일의 GIT 개정 해시로 매핑해야합니다. cvs2svn의 매개 변수는 --cvs-revnums이지만이 수정본은 svn 파일 속성에만 저장되며 git에서는 사용할 수 없습니다. 나는 git cvsimport -R이이 매핑을 생성하는 것을 보았지만