I think this is totally doable with Holochain — after all, a Git repo is just a database of hash-addressed objects, organised into a DAG of change-sets. And what is a Holochain DHT? A database of hash-addressed objects, which can be linked to form a DAG.
I’m also curious about looking at git-ssb, as @ViktorZaunders mentioned, to see how they connected Git to an SSB-based remote.
Some interesting challenges to work through; would love to hear other people’s clever ideas:
- As with any Git repo, blobs might be inordinately taxing on a DHT. Could a Git LFS storage backend live on a separate Holochain-based ‘blob storage DHT’?
- Git assumes that every copy of the repo is self-consistent; that is, there’s no uncertainty about where its branch pointers point. If the DHT were treated as a single remote, that breaks that expectation, because it’s possible for two people to advance a branch pointer at the same time and put it into an inconsistent state (conflict detection and resolution coming to Holochain in the future). Does that matter, and if so, what are some alternative designs? Should the DHT even be treated as a single remote?