我在 Git 中有一堆文件,使用 Git Annex(它基本上用符号链接替换所有文件,让你只在需要时获取内容)。
我在一台机器上用一些文件填充了一个 repo,我试图将它们同步到另一台机器上,运行带有主目录加密的 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
如何创建提交以更改无法以其当前名称签出的文件的名称?
注意:包含“在不同的文件系统或机器上检查”的答案不是我想要的,也不会被接受。我知道如果我将 repo 移动到未加密的挂载上,或者只是回到我添加文件的机器上,我可以重命名文件。我想知道如何在不将整个 repo 移动到不同的文件系统的情况下处理这个问题。