Search code examples
gitservergitlabfsck

GitLab server: broken link from tree to blob


Been getting a report from my GitLab server repocheck.md that there is a problem in one of my repositories. This is the problem:

    E, [2020-04-04T10:25:00.323291 #27099] ERROR -- : Could not fsck repository: broken link from tree 8c7ba0f6c712df32e991ae9262f1c7514fd22473
    to blob 806164c98a18ddc2295c246e5509674471d6f54a
    missing blob 806164c98a18ddc2295c246e5509674471d6f54a

How can I resolve this problem on the server?

I have a good copy of that repo on a client:

Pete@sev MINGW64 ~/Documents/path/to/client/repo (master)
$ git gc
Enumerating objects: 536, done.
Counting objects: 100% (536/536), done.
Delta compression using up to 8 threads
Compressing objects: 100% (424/424), done.
Writing objects: 100% (536/536), done.
Total 536 (delta 177), reused 338 (delta 104)

Pete@sev MINGW64 ~/Documents/path/to/client/repo (master)
$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (536/536), done.

Solution

  • Since force push from the good local repo and git-repair on the server did not solve the problem, copied the contents of the .git directory from the good local repo to the server's file space (replacing all contents under the repo.git/ directory). Then ran git fsck --full to confirm the problem was gone. And it was gone.