A deep survey of tools and techniques for storing issue and code-review data inside a git repository itself, motivated by a GitHub outage that took down issues, Actions, and git operations for several hours. It walks through four storage strategies: plain files in the working tree (Bugs Everywhere, ditz, GitRoot, git-issue), orphan branches (ticgit, ticgit-ng, haxy), git notes (git-appraise), and custom ref namespaces (git-bug, Gerrit NoteDb, Radicle, git-native-issue), plus VCS-native approaches like Fossil's single SQLite artifact store. For each, it examines whether a plain clone fetches the data, how concurrent offline edits merge, readability without extra tooling, survivability on bare hosts, and how authorship is determined, ending with a test of whether git bundle can package each approach into a single portable file.
Table of contents
Files in the working tree #Orphan branch #git notes #Custom ref namespaces #Built into the VCS #git bundle #Questions this post answers
How does git-bug store issue data inside a git repository?
Git-bug stores each bug as a chain of commits under refs/bugs/<id>, where each commit's tree holds an ops blob of JSON operations plus zero-byte marker files encoding Lamport clock values for ordering. User identities live as separate commit chains under refs/identities/<id>, storing name, avatar, and login in a versioned identity object. A default git clone skips these refs, so tools must add the refspec explicitly to fetch them. daily.dev surfaces deep dives like git internals for engineers evaluating self-hosted issue tracking options.
Does a default git clone fetch git notes or custom refs like refs/bugs?
No, a default git clone does not fetch refs/notes/* or custom namespaces like refs/bugs/* and refs/identities/*; you must add a refspec such as fetch = +refs/notes/*:refs/notes/* to the remote config, after which the data travels with every subsequent pull and push. Orphan branches under refs/heads/, however, are fetched automatically by a default clone since they live under the standard heads namespace. engineers weighing git-native issue storage can dig into these ref mechanics on daily.dev.
Can git bundle back up issues stored in git-bug or git notes along with the code?
Yes, git bundle create backup.bundle --all packs everything under refs/, so a single bundle file captures code history together with git-bug's refs/bugs/* and refs/identities/* refs (454 bug refs in one test repo) or a refs/notes/review namespace, since --all passed to git rev-list means everything under refs/ and a bundle is simply a packfile with a ref list attached. teams building offline-resilient git workflows can track these techniques on daily.dev.