Git svn clone拉坏了存储库

时间:2014-02-12 17:25:37

标签: git svn clone git-svn git-clone

当将一个JavaScript / Web项目从Subversion转换为Git时,我发现了一个问题,即使我从头开始(第一个Git存储库总是坏的)。

git svn克隆工作正常。从这里开始,拉出一个裸存储库看起来不错,但是从原始克隆存储库或任何后续裸存储库中提取具有工作目录的存储库会出现以下错误:

Cloning into 'R:\WebClone2'...
done.
fatal: unable to read tree f86e35f1f083aa394cd0c28871cb5433fe9751da
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

我没有在SO上看到这种错误的确切组合。到目前为止我做了什么:

  • git fsck显示没有问题,即使使用--full
  • Subversion项目有空文件夹。这可能是个问题吗?将.gitkeep添加到克隆版本中的空文件夹不会修复下游克隆。
  • 当我执行git status时,它基本上想要删除仓库中的每个文件和文件夹。如果我承诺,一切都会消失。
  • 如果我改为进行git checkout,那么该存储库就会变得“好”。但是,从这个好的副本中克隆的Repos显示出同样的问题。

我迷路了。谢谢你的帮助。

更新:我把.gitkeep放在Subversion的空文件夹中,并用git svn clone重新转换 - 同样的问题。

1 个答案:

答案 0 :(得分:0)

我无法深入研究确切的问题,但我找到了解决方案:

源存储库位于单独的计算机上,可通过Windows网络上的映射驱动器访问。当我通过浏览Windows资源管理器进行克隆时,克隆失败并出现上述错误。但是,当我使用远程桌面或使用我的网络用户和密码直接登录到计算机时,克隆工作正常。

我唯一可以得出的结论是,它是Windows /网络登录权限问题。一些挖掘回购错误的内容也暗示了这一点。

希望这可以帮助将来的某个人!

更新:办公室中的其他人在将网络驱动器中的存储库克隆到自己的工作站时遇到了同样的问题。测试表明:

  • 其他人都能够将存储库克隆到自己的计算机
  • 她无法在其他人的计算机上使用Windows登录进行克隆
  • 其他人可以使用Windows登录功能克隆到她的计算机上

这似乎支持了某种Windows权限问题,而不是损坏的存储库或其他Git问题。