¿Cómo verificar que BFG Repo-Cleaner haya eliminado correctamente un file grande de un repository de git?

He utilizado BFG Repo-Cleaner para eliminar un file grande de un repository de git:

java -jar ../bfg-1.11.8.jar --delete-folders escrow application.git cd application.git git reflog expire --expire=now --all git gc --prune=now --aggressive cd .. mkdir clone cd clone git clone file:///home/damian/temp/TCLIPG-4370/test/application.git 

He utilizado el guión ( http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/ ) para verificar mi repository antes y después de ejecutar BFG Repo-Cleaner y muestra la eliminación del directory de plica y también hay una networkingucción en la memory en los dos repositorys.

Todo se ve bien, pero ¿cómo puedo verificar que todas mis confirmaciones sean las mismas? ¿Tendría que crear un script con git-for-each-ref y comparar los commits, con el mismo nombre, en los dos repositorys, para verificar que BFG haya funcionado correctamente?

Cualquier sugerencia sería muy apreciada.

Técnica rápida y sucia: suponiendo que haya solo una versión del file grande que haya existido alguna vez

Esto imprimirá el blob sha para el file grande

  git hash-object <large-file> 

Usando el sha del paso anterior

 git cat-file -p <large-file-sha> 

Si eso falla, entonces sabes que ninguna confirmación puede estar haciendo reference a ese blob.

Si realmente desea verificar que todas sus confirmaciones son las mismas (y lo mismo significa 'diferente' aquí, ya que está eliminando el file grande), entonces tendría que escribir una secuencia de commands para modificar el tree de las confirmaciones originales y las nuevas confirmaciones . No usaría for-each-ref, usaría rev-list, y necesitaría un mecanismo para mapear sha viejo a sha nuevo, que podría no tener con la herramienta BFG. Podrías simplemente verificar las sugerencias de las twigs como describes, lo que podría ser suficiente.

Puede get una opinión independiente del repodiffer de Eric S. Raymond (parte de su proyecto de repository ): http://www.catb.org/~esr/reposurgeon/repodiffer.html

Lo usas así:

 $ repodiffer old-repo-copy.git new-repo-copy.git 

El script puede tardar un time en ejecutarse, pero le informará con precisión qué ha cambiado entre esos dos repositorys. Pequeña muestra de salida:

 ... 1a54b66 -> 9b11d44: same differences as for 5c572dc -> 6e8307c. changed: e00a601 -> 30a42c8 in tree. L only: frontend/assets/big.mp4 R only: frontend/assets/big.mp4.REMOVED.git-id ... 

Descripción completa: soy el autor de BFG Repo-Cleaner.