【问题标题】:git-svn rebase "File name too long"git-svn rebase “文件名太长”
【发布时间】:2012-04-23 13:02:10
【问题描述】:

我在跑步

$ 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”文件。 我也不能像 bdonlan 在他的解决方案中所说的那样重命名文件(通过某种政治决定)。

除了将每个文件夹下载到单独的SVN-repo并通过grafts合并之外,是否有任何解决方法或解决方案?

更新

以上方法我都试过了

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”文件时消失了。

现在我想我找到了问题的根源,但在那之后生活并没有变得更轻松)

【问题讨论】:

  • 你的平台和git版本是什么?
  • 哦,对不起,忘记写了。 MacOsX 10.6 git 版本 1.7.9.6 svn,版本 1.7.4 (r1295709)

标签: git svn version-control git-svn dvcs


【解决方案1】:

最后,我在我的情况下找到了尽可能优雅的解决方案。 我已经通过 MacOs 磁盘实用程序创建了 ExFat dmg-image。 之后,我安装了新的图像文件并将我的 git-repo 复制到其中。 在 VirtualBox 下比 Cygwin 效果更好。

另外,我曾尝试使用 NTFS,但我失败了。 NTFS-3G 和 Tuxero 驱动程序也不支持长 UTF 名称。 Linux 和 ReiserFS 也是如此。

【讨论】:

    【解决方案2】:

    这是我发现的一种糟糕但有效的解决方法。

    MsysGit 和 Cygwin 都可以正常使用该文件。

    所以,我得到了 VirtualBox,并在其中安装了带有 MSysGit-utf8 的 Windows。

    然后我将我的项目复制到 VirtualBox 中。

    git svn rebase 它的工作就像一个魅力。

    之后,我能够将更新的项目(或从中变基)复制回 MacOs 主机。 当然,长名称的文件没有复制,但我现在可以跳过它们并添加到忽略列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2022-12-02
      • 2014-04-29
      • 2019-05-06
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多