8

我在过去可以正常工作的 OS X 服务器上有一个 git 存储库。我能够添加文件、提交它们并将内容拉到我的笔记本电脑上。

现在,当我 ssh 进入服务器并在存储库中执行git commit或操作git status时,我在命令行中看到的只是bus error.

git log仍然可以正常工作并给我通常的输出。

我猜存储库有问题,因为在同一台服务器上的其他存储库中,两者git commit仍然git status有效。

我该如何调试/修复这个?

更新:我重新创建了在问题发生之前我上次创建的目录。这让我可以再做git status一次!

git commit -a但是,之后直接运行会出现以下错误:

fatal: Unable to create '/path/to/repo/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

然后我手动删除了index.lock文件,现在问题解决了..

我不知道出了什么问题。有任何想法吗..?

4

2 回答 2

5

Bus error表示内存问题;它可能就像磁盘上的文件损坏、git程序中的错误或内存、内存控制器等故障一样简单。

如果您可以在一夜之间在计算机上运行内存测试工具,这将有助于排除内存和控制器故障。(您也可能会在奇怪的SIGBUSSIGSEGV大型编译期间发现它们,或者其他程序的随机崩溃......)

您能否从笔记本电脑的克隆中重新创建服务器上的存储库,并查看它是否正常运行?我的猜测是存储库已损坏,需要用一个好的克隆替换。

于 2011-04-03T00:13:17.950 回答
1

由于 macOS Sierra (10.12.3) 上的底层文件系统存在问题,我遇到了这个问题。本质上,由于某种原因,我的加密 .dmg 已损坏 - 我认为是由于使用 hdutils 进行了扩展。

DiskUtility 诊断出文件系统的问题,但无法修复它。

我找到的唯一解决方案是重新创建图像并重新克隆存储库。

于 2017-02-16T15:21:06.200 回答