Added to my "play with" list. Without trying to pitch x vs y (the more Git over Nostr options we have, the better), but how would you compare n34 to, say, ngit CLI? Any differences in approach, are both tools compatible? (I.e., can I init a repo with ngit-cli, push it somewhere and then use n34 to submit a patch?)
Today, I’m thrilled to introduce n34 (https://n34.dev), a command-line interface (CLI) for sending and receiving Git issues, patches, and comments via the Nostr protocol.
I hope you all like it, and I’m eager to hear your feedback!
A special thank you to:
- nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet for his awesome https://rust-nostr.org
- nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr for his invaluable feedback, answers to my questions, and insightful conversations.
- nostr:npub16p8v7varqwjes5hak6q7mz6pygqm4pwc6gve4mrned3xs8tz42gq7kfhdw for his constructive feedback.
- nostr:npub1useke4f9maul5nf67dj0m9sq6jcsmnjzzk4ycvldwl4qss35fvgqjdk5ks for suggest the keyring
- nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 for encouraging me to bring this to life after I had initially shelved the idea. <3
Examples:
- For sending a patch: `n34 patch send ./patches/*.patch`
- Receiving one: `n34 patch fetch
- List them: `n34 patch list`
Almost the same with issues. Check out the documentation
Discussion
tl;dr:
They are compatible, n34 follow the email workflow while ngit follow the branch-PR-merge workflow.
Yes, they are both compatible, we both follow NIP-34. Using both you can send and fetch patch from relays, the only difference is how the patches being sent and fetched.
Ngit will handle the git things for you, like you only have to make your changes in pr/* branch, then push it, its remote will make the patch events for you and broadcast it to the relays.
n34 not, it just handle the nostr part, you have to make the patch my yourself using git-format-patch, then provide the patches to n34 to make the events and broadcast it.
Same with fetching, ngit will fetch the patches and apply them to branches, but n34 will give you the patches file and you can do whatever you want with them, like applying them using git-am.
Got it. Sounds awesome! I sorta miss the days of mailing lists and patches. I’ll definitely play around with it. Since you won’t take zaps, here’s my kudos and appreciation from one “Indie Nostr dev” to another.
Thank you, looking back for your feedback
n34 is a cool UX. You create the patch yourself and supply it as a .patch file to n34. This means you really fine tune the patch config options.
With ngit, you dont have to use the branch-merge-model. Its built to be an accessable tool which can fit into a range of workflows. For example with `ngit send` you can create patches from selected commits. `ngit list` can apply them.
I love that we open protocols like git and nostr, there can be tools like n34 which hone in on a specific workflow and do a great job at making it smooth.
n34 also works good in conjunction with ngit. Clone a repository using a nostr:// and you'll get the repository state through nostr and the git data from the git servers the maintainers list vianostrl, but you can use n34 for browsing, applying and sending patches for the repo.