Git Annex を使用して、Git にたくさんのファイルがあります (基本的にすべてのファイルをシンボリック リンクに置き換え、必要なときにのみコンテンツを取得できるようにします)。
あるマシンにいくつかのファイルを含むリポジトリを作成し、それらを別のマシンに同期して、ホーム ディレクトリ暗号化を使用して Ubuntu 12.04 を実行しようとしています。
実行するgit annex sync
と、次のようなエラーが発生します。
error: unable to create symlink path/to/really_long_filename_that_is_too_long_for_encfs_or_whatever_ubuntu_is_using_on_this_filesystem.drat: File name too long
そこにあるはずのすべてのファイルを作成できないため、当然のことながら同期は失敗します。
明らかに、長い名前のファイルの名前を短い名前に変更する必要があります。しかしgit mv
、おそらくファイルをチェックアウトできなかったため、機能しません。
fatal: bad source, source=path/to/really_long_filename_that_is_too_long_for_encfs_or_whatever_ubuntu_is_using_on_this_filesystem.drat, destination=short.name
現在の名前でチェックアウトできないファイルの名前を変更するコミットを作成するにはどうすればよいですか?
注:「別のファイルシステムまたはマシンでチェックアウトする」という回答は、私が探しているものではなく、受け入れられません。レポを暗号化されていないマウントに移動するか、ファイルを追加したマシンに戻るだけで、ファイルの名前を変更できることはわかっています。レポ全体を別のファイルシステムに移動せずに、この問題に対処する方法を知りたいです。