cvs2git migra files binarys (marcados con -kb) que son diferentes de git y cvs

He ejecutado una migration cvs2git en un repository CVS de más de 2 GB. Escribí un script que atraviesa el nuevo repository git y el module CVS para verificar que los objects son los mismos. Descubrí que los files de text migran muy bien y tienen el mismo sha1sum; sin embargo, TODOS los files binarys tienen diferentes sha1sums y están marcados como binarys en CVS (-kb). Todos los demás temas que he leído sobre cvs2git y files binarys generalmente culpan a los files binarys que no están marcados como binar (-kb), pero ese no es el caso aquí. ¿Qué otra cosa podría ser el problema?

Los scripts que ejecuto para hacer la migration están a continuación:

./Python-2.7.3/python ./cvs2svn-trunk/cvs2git \ --blobfile=/path/to/git-blob.dat \ --dumpfile=/path/to/git-dump.dat \ --username=cvs2git \ /cvsroot/database cd /gitroot; mkdir database; cd database; git init cat /path/to/git-{blob,dump}.dat | git fast-import 

Su problema podría explicarse si su repository es un repository CVSNT, a diferencia de un repository CVS estándar. CVS registra una vez, para todas las revisiones, si un file es binary, mientras que CVSNT registra la revisión del tipo de file por revisión . cvs2svn / cvs2git solo lee el atributo binary de todo el file, no los attributes de revisión por revisión de CVSNT. Por lo tanto, no sabe que un file ha sido marcado como binary en CVSNT.

Esta es la razón principal por la que cvs2svn / cvs2git no admite oficialmente la conversión desde repositorys CVSNT .

¿Estos files binarys contienen algunas cadenas en forma de $Id ...$ ? Ese fue el problema para mí hace algún time (lo reemplazó con $Id$ en files binarys), pero debería arreglarse en las versiones más recientes, ver este compromiso .

En cualquier caso, recomiendo usar un editor hexadecimal para descubrir cuáles son realmente las diferencias.

También noto que no usas un file de opciones. No estoy seguro de qué valores pnetworkingeterminados utiliza cvs2git en ese momento, pero valdría la pena probar una versión personalizada de cvs2git-example.options .