2

私は走っています

$ 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

次の質問を読みました「gitcheckout-index:ファイルを作成できません(ファイル名が長すぎます)

それは私に密接に関連していますが、私の問題を解決していません。

または

git ls-files --stage

または

git ls-files

問題の「$180_chars_file_name_looks_cutted_with_spaces_too」ファイルが見つかりません。また、彼のソリューションでbdonlanが言ったように、(ある種の政治的決定によって)ファイルの名前を変更することはできません。

各フォルダーをダウンロードしてSVNリポジトリを分離し、移植によってマージする以外に、回避策や解決策はありますか?

アップデート

私は上記のすべてをで試しました

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

そして、コミッターはNTFSを使用してWindowsから仕事をしています

更新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

vimエディターで「132_chars_file_name_with_numbers_at_the_end」を正常に開いて編集したとき。しかし、「:wq」と入力するとファイルが消えました。

今、私は自分の問題の根源を見つけたと思いますが、その後は人生は楽になりません)

4

2 に答える 2

1

最後に、私は自分の状況で可能な限りエレガントな解決策を見つけました。MacOsディスクユーティリティでExFatdmg-imageを作成しました。その後、新しいイメージファイルをマウントし、git-repoをそこにコピーしました。VirtualBoxではCygwinよりもうまく機能します。

また、NTFSを使おうとしましたが、大失敗しました。NTFS-3GもTuxeroドライバーも、長いUTF名をサポートしていません。LinuxとReiserFSについても同じことが言えます。

于 2012-05-05T22:05:20.693 に答える
0

これが私が見つけたひどいが回避策の1つです。

MsysGitとCygwinはどちらも、通常はそのファイルで動作します。

そこで、VirtualBoxを入手し、MSysGit-utf8を搭載したWindowsをインストールしました。

次に、プロジェクトをVirtualBoxにコピーしました。

git svn rebaseは、魅力のように機能しました。

その後、更新されたプロジェクトをコピーして(またはプロジェクトからリベースして)MacOsホストに戻すことができるようになりました。もちろん、長い名前のファイルはコピーされませんでしたが、今はスキップして、リストを無視するように追加できます。

于 2012-05-02T17:36:23.467 に答える