Skip to content

GitDB backend (odbt=git.GitDB) reports BadObject on valid repository; default GitCmdObjectDB works #5501

Description

@Dummm

Issue

I'm running into what appears to be an issue with Aider forcing GitPython's GitDB backend.
My repository is healthy, and Git itself has no trouble reading any objects, but Aider fails during repository initialization with:

Unable to list files in git repo: BadObject: b'39d591623242a6d241a49e1e3f466f62eb354b8f'
Is your git repo corrupted?

The failure appears to come from Aider explicitly constructing the repository as:

git.Repo(path, odbt=git.GitDB)

The exact same traversal succeeds when using GitPython's default backend (GitCmdObjectDB) and fails when using GitDB.

Working:

from git import Repo

repo = Repo(".")
list(repo.head.commit.tree.traverse())

Fails:

import git

repo = git.Repo(".", odbt=git.GitDB)
list(repo.head.commit.tree.traverse())

Version and model info

Aider v0.86.2

Model: nvidia/nemotron-3-ultra-550b-a55b:free
Edit format: architect

Git repo: .git (healthy)

Git version: 2.55.0
GitPython: 3.1.46
gitdb: 4.0.12
smmap: 5.0.2

Python: 3.12.13
Platform: Linux (CachyOS)

Repository sanity checks performed:

  • git fsck --full --strict ✔
  • git status ✔
  • git ls-files ✔
  • git show HEAD ✔
  • git cat-file -t ✔
  • git verify-pack ✔
  • GitPython default backend ✔
  • GitPython GitDB backend ✘ (BadObject)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions