git checkout-index: no se puede crear el file (el nombre del file es demasiado largo)

Reviso mi repository pero hay un file con un nombre de file demasiado largo:

~/git$ git clone git+ssh://server/git/ma.git Initialized empty Git repository in ~/git/ma/.git/ remote: Counting objects: 1855, done. remote: Compressing objects: 100% (1594/1594), done. remote: Total 1855 (delta 656), reused 1078 (delta 222) Receiving objects: 100% (1855/1855), 54.14 MiB | 701 KiB/s, done. Resolving deltas: 100% (656/656), done. error: git checkout-index: unable to create file four_folder/$VERYLONGNAME.pdf (File name too long) 

$ VERYLONGNAME tiene aproximadamente 160 caracteres de largo. Mi sistema de files es ext4 en Ubuntu 10.10.

¿Alguien puede ayudarme a verificar el file largo?

Es posible que deba deshabilitar el encryption del directory de inicio o el pago fuera como /tmp

Creo que limita el tamaño del nombre de file a 144 caracteres.

http://ubuntuforums.org/showthread.php?t=1173541

http://ubuntuforums.org/showthread.php?t=1258294

Si está utilizando la function de directory de inicio encriptado de ubuntu, intente visitar un directory que no se encuentre debajo de su hogar; ecryptfs puede hacer que los nombres de file se vuelvan más largos en el sistema de files subyacente. De lo contrario, puede get los datos con el siguiente procedimiento:

Primero, vaya al directory que lo contiene y escriba git ls-files --stage . Debería ver un montón de resultados de la siguiente forma:

 100644 16890852350cb62bb9f9aec5e52eea8ba46f1192 0 somefile 

Encuentra el hash correspondiente a tu file de interés. Ahora haz:

 git cat-file blob 16890852350cb62bb9f9aec5e52eea8ba46f1192 > shortername.pdf 

Donde nombre_espacio.pdf es un nombre nuevo para el file en cuestión, reemplazando el hash con el que encontraste arriba. Esto extraerá el contenido del file en cuestión.

Ahora solo hazlo:

 git add shortername.pdf git rm --cached $VERYLONGNAME.pdf git commit 

Esto cambiará el nombre del PDF excesivamente largo a un nombre más razonable.