【问题标题】:Error with Git SVN cloneGit SVN 克隆错误
【发布时间】:2014-08-17 20:24:22
【问题描述】:

我正在将几个项目从 SVN 迁移到 Git,并且我正在使用 Git 的“svn clone”功能。我正在尝试运行以下内容:

git svn clone --stdlayout --authors-file=authors.txt <path-to-svn-project> <local-git-repo-name>

我已经能够克隆几个较小的项目,但是当我尝试克隆一个较大的项目时,它会出现以下错误:

couldn't truncate file at /usr/lib/perl5/site_perl/Git.pm line 1322.

Error removing .git/Git_04wYzV at /usr/lib/perl5/5.8.8/File/Temp.pm line 890.

我认为它可能会在 google 搜索中找到快速修复,但这看起来是一个不寻常的错误。有谁知道我该如何克服这个问题?

我的版本非常新,我正在尝试在 Windows 8.1 上运行它:

Git: using version 1.9.4.msysgit.0
Subversion: using version 1.8.9
git-svn: using version 1.9.4.msysgit.0

【问题讨论】:

  • 也许你会试试 SubGit?
  • 1.9.5 也出现错误
  • 这个问题解决了吗?尝试了每个 mysysgit 版本到 1.8.3 都没有成功。 git svn fetch 对我来说失败了

标签: git svn


【解决方案1】:

以管理员身份调用 git svn fetch 对我有用。它可能会访问(并尝试编辑/删除)一些需要管理员权限的文件。

【讨论】:

    【解决方案2】:

    当 svn 存储库太大时,我也遇到了同样的问题。我可以使用 SmartGit 应用程序来处理它。

    http://www.syntevo.com/smartgit/svn-tour 有 30 天的免费试用期。

    如果您不需要所有历史记录,另一种解决此问题的方法是从修订版导入。

    git svn clone -r12345:HEAD  --stdlayout --authors-file=authors.txt <path-to-svn-project> <local-git-repo-name>
    

    最后你可以试试这个命令(设置缓冲区大小):

    git config http.postBuffer 524288000
    

    【讨论】:

      【解决方案3】:

      运行 git --version 并确保您使用的是 2.4+ 版本。我现在找不到链接,但是在 2.2.x 和之前的版本中,Git SVN 代码中存在一个错误,该错误会导致它通过大型存储库迁移在各个点失败。我最终与 IRC 上的 Git 开发人员一起工作,并使用了某个人发布到 Git 邮件列表的补丁,并让它正常工作。不过,该补丁已被合并并发布。确保您拥有最近的 Git 和最近的 SVN。您也可以通过在目录中运行git svn fetch 来恢复git svn clone。此外,--verbose 有助于查看更多有关错误的上下文。

      【讨论】:

        【解决方案4】:

        不知道这是否是你的问题,但我遇到了同样的错误git svn clone/git svn fetch-ing 一个大型 svn 存储库。有时它会抱怨couldn't truncate file,有时它会抱怨打开的文件太多,但它会因为其中一个相当可靠地进入进程而死掉,通常是在一个特别大的修订版上(最初,重试获取工作,但最终它会在同一个巨大的修订版中可靠地消亡)。

        为了修复后者,我运行了ulimit -n 4096ulimit -n 报告了我的默认限制为1024),将打开文件句柄的限制增加了四倍。但它不仅修复了“打开的文件太多”错误,还修复了couldn't truncate file。虽然检查源代码表明它被文件句柄截断(因此不需要打开一个新的文件句柄来这样做,冒着句柄耗尽的风险),这个更改似乎也解决了这个问题,所以它可能是底层实现做了一些违反打开句柄限制的事情,并以暗示truncate的方式死亡,即使是打开文件限制本身负责。

        【讨论】:

          【解决方案5】:

          我在使用 msysgit 1.9.4 时遇到了完全相同的问题。
          尝试改用 v1.8.3:我克隆了所有 SVN 存储库,没有出现错误。

          【讨论】:

            【解决方案6】:

            我在我的 Windows 10 机器上浪费了很多时间,但出现了同样的错误。我尝试了上面的建议和许多其他建议。我的解决方案是从 linux docker 映像运行它。

            【讨论】:

              猜你喜欢
              • 2010-11-30
              • 2011-02-10
              • 1970-01-01
              • 2011-06-29
              • 1970-01-01
              • 1970-01-01
              • 2023-04-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多