2012-04-23 2 views
2

Я бегГИТ-SVN перебазироваться «слишком длинное имя файла»

$ git svn rebase 

Через пару минут он закончил извлекая и начал перебазирование. И я получил следующее сообщение об ошибке:

First, rewinding head to replay your work on top of it... 
error: cannot stat '$73_chars_4_deep_levels_path_with_spaces/$180_chars_file_name_looks_cutted_with_spaces_too': File name too long 
error: cannot stat '$73_chars_4_deep_levels_path_with_spaces/$180_chars_file_name_looks_cutted_with_spaces_too': File name too long 
error: cannot stat '$73_chars_4_deep_levels_path_with_spaces/$180_chars_file_name_looks_cutted_with_spaces_too': File name too long 
could not detach HEAD 
rebase refs/remotes/git-svn: command returned error: 1 

Я прочитал следующий вопрос «git checkout-index: unable to create file (File name too long)»

Это близко по отношению ко мне, но не решить мою проблему.

Нор

git ls-files --stage 

ни

git ls-files 

не нашел проблемы файл "$ 180_chars_file_name_looks_cutted_with_spaces_too". Также я не могу переименовать файлы (по каким-то политическим решениям), как сказал Бдонлан в своем решении.

Есть ли какие-либо способы решения или решения, за исключением загрузки каждой папки для разделения SVN-репо и слияния через графты?

UPDATE

Я попробовал все выше на

MacOsX 10.6 
git version 1.7.9.6 
svn, version 1.7.4 (r1295709) 

И commiters делают они работу с ОС Windows с NTFS

UPDATE 2

Я сделал некоторые исследование. Я думаю, что проблема кроется в символах UTF-8. Я пытался создать новый файл

$ touch "$180_chars_file_name_looks_cutted_with_spaces_too" 
$ ls 
132_chars_file_name_with_numbers_at_the_end 

Файл выглядит повредиться. У него есть некоторые цифры в конце. Вы можете воспроизвести его, например:

$ touch "яяяяяяяяя яя яяяя яя яяяяяяяяяя яяяяяяяяя я яяяяяя я яяя яяяяяяяяя яяяяяяяяяяяяя яяяяяяяя я яяяяяяяяяяяяяяяяяя яяяяяя яя яяяяяя яяяяяяяяяяяяя яяяяяяяя яяяяя яяяяяя я яяя яяяяя яяя" 
$ ls 
яяяяяяяяя яя яяяя яя яяяяяяяяяя яяяяяяяяя я яяяяяя я яяя яяяяяяяяя яяяяяяяяяяяяя яяяяяяяя я яяяяяяяяяяяяяяяяяя яяяяяя яя яяяяяя яяяя#464CDD8 

При успешном открытии «132_chars_file_name_with_numbers_at_the_end» редактором Vim и редактировать его. Но когда я ввел файл «: wq», исчез.

Теперь я думаю, что я нашел корень моей проблемы, но жизнь не происходит легче после этого)

+0

какая у вас платформа и версия git? – CharlesB

+0

Ой, извините, забыли написать. MacOsX 10.6 git версия 1.7.9.6 svn, версия 1.7.4 (r1295709) – wwarlock

ответ

1

Наконец-то я нашел в моем распоряжении как можно более элегантное решение. Я создал ExFat dmg-image утилитой Disk Mac OS. После этого я установил новый образ-файл и скопировал в него свой git-repo. Он работает лучше, чем Cygwin под VirtualBox.

Кроме того, я пытался использовать NTFS, но я совершил фиаско. И NTFS-3G, и драйвер Tuxero не поддерживают длинные имена UTF. Та же история с Linux и ReiserFS.

0

Вот один ужасно, но работает обходной путь, который я нашел.

MsysGit и Cygwin работают с этими файлами в обычном режиме.

Итак, я получил VirtualBox и установил Windows с MSysGit-utf8.

Затем я скопировал свой проект в VirtualBox.

git svn rebase сделал это произведение как шарм.

После этого я смог скопировать обновленный проект (или переустановить его) обратно на сервер MacOs. Конечно, файлы с длинным именем не копировались, но я могу пропустить их сейчас и добавить в список игнорирования.