Yes. Last May I did the ngit prototype which tried to replace git servers entirely through events on relays. I concluded whilst it is possible, it is not very storage or bandwidth efficient. It turns out git does a lot of optimisation in this regard.
Discussion
I did the same thing and came to the same conclusion. It was a fun week of rage-coding though.
I'm leaning into Nip34 now, there are a few things I need to append to it but I think the direction is correct.
Yes, there is a lot of potential with nip34. Its interesting how similar the ngit / gitworkshop protocol is to nip 34 without any coordination.
I already started doing something similar with nostrocket too: repo announcement events.
I didn't use patches but instead created pull request events pointing to the repo and commit.
What I was missing was patches. The ability to send a patch without needing a public bare repo is a killer feature that didn't make it onto my radar.
More importantly, the pressing need is censorship resistant contribution. Today, if a user gets banned from github, like that Bisq contributor recently, it stunts there ability to participate.
If a project gets banned it can be disruptive short term and they have to move to another centralised alternative to repeat the process.
That's not freedom technolgogy.
If collaborative contribution moves to nostr, it would be a minor irritation to switch from GitHub to a different gitserver or a few mirrors.
We could have create a nostr git remote-helper to proxy request to one of a number of git servers that the maintainers put in their repo event. That way everyone would seamlessly switch to a different server if one got server banned the project.
Just publish a link to a private git repo on Nostr. Git is already distributed and decentralized. The only purpose of github (and SourceForge and other Big Tech repo collections) was for publicity.
Nice. Which client did you use?
git. The OG "client" (which is also a server). It has a lot of perl, and I hate perl (although I was online friends with Larry Wall), but it works, it works well, and the only problem with it is too many features.
Did you post the link using a standard social nostr client? Rather than a ngit or a gitstr with their special event type inviting patches?
Yes. There are a few problems to solve related to publicity. Perhaps we can carve out a niche for freedom tech projects and create a network effect for that.
git-ssb just uses a plugin for SSB repositories. Why replace git? It is not tied to github in any way. Use any repository, and add new protocols like SSB or Nostr via plugins.
Why replace git? That's exactly the conclusion I came to. So i completely rearchitected ngit and built gitworkshop.dev Let git be git. Let nostr be nostr.
git-ssb packages each commit into an SSB message. If the commit is too large for the 8k text limit, it is stored as a "media" file and linked. SSB provides an ipfs-like distributed media storage (referenced by hash and can be served from any node that has it).
My original ngit prototype operated on a event per commit basis. I considered nip94 for storing large commits. Storing files is less easy with nostr. HORNET seems interesting. For file storage on nostr, paid for through micro payments.
Git does lots of clever things behind the scenes to reduce space usage and makes pull, push and clone low bandwidth. You lose that somewhat if you are storing each commit as a file.