git checkout-index: невозможно создать файл (слишком длинное имя файла) - PullRequest
12 голосов
/ 24 мая 2011

Я захожу в свой репозиторий, но есть файл с слишком длинным именем:

~/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 имеет длину около 160 символов.Моя файловая система ext4 на Ubuntu 10.10.

Может кто-нибудь помочь мне проверить длинный файл?

Ответы [ 2 ]

19 голосов
/ 24 мая 2011

Возможно, вам придется отключить шифрование или извлечение из домашнего каталога, например /tmp

Я думаю, что это ограничивает размер имени файла до 144 символов.

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

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

9 голосов
/ 24 мая 2011

Если вы используете функцию зашифрованного домашнего каталога в Ubuntu, попробуйте перейти в каталог, который не находится у вас дома;ecryptfs может привести к увеличению длины имен файлов в основной файловой системе.В противном случае вы можете получить данные с помощью следующей процедуры:

Сначала перейдите к каталогу, в котором он находится, и введите git ls-files --stage.Вы должны увидеть несколько выводов следующей формы:

100644 16890852350cb62bb9f9aec5e52eea8ba46f1192 0       somefile

Найдите хеш, соответствующий вашему интересующему файлу.Теперь сделайте:

git cat-file blob 16890852350cb62bb9f9aec5e52eea8ba46f1192 > shortername.pdf

Где shorttername.pdf - это новое имя для рассматриваемого файла, заменив хеш на тот, который вы нашли выше.Это извлечет содержимое файла, о котором идет речь.

Теперь просто сделайте:

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

Это эффективно переименует слишком длинный PDF в более разумное имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...