致命:git/repo/path上的fsync错误

Ado*_*obe 5 git github bitbucket

我尝试整天解决问题:当我尝试在空目录中克隆存在的存储库时,我收到错误:

$ git clone https://bitbucket.org/path_to_repo/aroma
Cloning into 'aroma'...
remote: Counting objects: 1335, done.
remote: Compressing objects: 100% (1174/1174), done.
remote: Total 1335 (delta 618), rReecused 551 (deltea 72)
Receiving objects: 100% (1335/1335), 43.16 MiB | 3.78 MiB/s, done.
Resolving deltas: 100% (618/618), done.
fatal: fsync error on 'H:/Project/testrep/aroma/.git/objects/pack/tmp_pack_xqHCKb': Bad file descriptor
fatal: index-pack failed
Run Code Online (Sandbox Code Playgroud)

我尝试在config中设置pack.windowMemory大小和pack.packSizeLimit等等.同样的错误; [在我能够克隆存储库之前.但出了点问题

Von*_*onC 2

检查问题是否仍然存在:

  • Windows 版 Git 的最新版本,
  • 在本地磁盘上(C:\而不是H:\
  • 来自常规 C​​MD Windows shell 会话(不是git bash

根据驱动器的性质H:\,您可能会因上述性质而在访问/更新文件时遇到问题。

所以其他仓库找到邻居并且它仓库非常好拉和推。

如果其他存储库正在工作H:(意味着您可以从这些存储库克隆/推送/拉取H:),请尝试将错误的存储库复制(简单复制)到另一个文件夹,然后尝试从该其他文件夹克隆它。如果仍然失败,则说明其中的某些内容已损坏:是时候申请git fsck检查了。


注意:使用 Git 2.42(2023 年第 3 季度),您现在可以使用现有的 Trace2 工具来了解有关fsync事件的更多信息。

请参阅Beat Bolli ( )提交的 a27eece(2023 年 7 月 20 日)。(由Junio C Hamano 合并 -- --提交 52d9dc2中,2023 年 8 月 2 日)bbolli
gitster

wrapper:使用trace2计数器收集fsync统计信息

签署人: Beat Bolli

正如在此线程开始的线程中提到的,trace2 计数器应该用于对事件进行计数,而不是临时静态变量。

wrapper.c将两个fsync静态变量转换为trace2计数器,减少与trace2子系统之间的耦合。
调整 t/t5351 以匹配 Trace2 计数器输出格式。

计数器不是针对每个线程的,因为被替换的计数器也不是针对每个线程的。