9

将 SourceTree 与我们的特定 Git 存储库一起使用时,我们看到一个对话框弹出,并显示错误消息:

“摘要”失败,代码 128:致命:无法读取树 152c27e57424de6ae0df1f0d32feba7beae6e2fb

错误消息每天会弹出多次。

日志中没有其他信息,我们无法在命令行使用 Git 重现错误消息。当我们运行一些测试时:

Craig@DEMO-PC /d/project (major)
$ git cat-file -t 152c27e
tree

Craig@DEMO-PC /d/project (major)
$ git cat-file -p 152c27e
040000 tree 174f073109a9d0721b35e84140d0a7b29dc48ef9    main
040000 tree fb011d0153c1521441d583196a93f945dcb0df1e    test

一连串git ls-tree -r 152c27e吐出树的所有子节点,这确认它是src我们 Java 项目的文件夹。

此外,agit fsck --full成功且没有错误。对象和对象目录的形状是 100%,并且没有悬空项。对象的权限似乎很好。

我们可以做些什么来仔细检查存储库的状态,或者尝试重现错误消息?

4

1 回答 1

7

可能是权限问题,其中:

  • 从当前用户的角度来看,权限看起来不错
  • 运行 SourceTree 的帐户的权限不好

早在 2013 年 2 月就有类似的案例报道,没有任何答案
但它不仅限于 SourceTree:

清除工作区完全解决了这个问题。

不知何故,Redmine 用来向 git 用户进行身份验证的私钥在 gitolite 配置中被重命名。

因此,这通常与以不同于预期用户的用户身份访问数据的进程有关。

于 2013-09-30T19:00:59.983 回答