cargo install ngit is 333/346 20 minutes later


Okay, ngit v1.1.2 is installed and responding. 👍🏼


We're in! 😊

https://gitworkshop.dev/repo/SilberWitch
nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr


Nice!


Compiling dependancies is fun. You should try and install nix-bitcoin with all the features turned on. That builds the dependancies and runs all their tests. Many hours of the fan creating white noise.


dependencies ... 😁


😂
And I only have 2 cores and a gig RAM on my ancient Linux netbook, so yay. Would take weeks.


Can you see the link or do you also get a 500?


I didn't really know how to use it, so I cloned the source repo and my fork. I guess I submit patches from my fork to the source and then accept them on the other side, somehow?


I see it fine and don't get a 500 error? Is this on gitworkshop?


Yes.


If you want to submit a patch from the source repo you can. Submit the patch using `ngit send`. Other people can comment.


Do you still get a 500 error? What's the link you are using?


To accept the patch as-is, use `ngit list` to either checkout a branch with the patch that can be merged with `git merge` or apply the patch directly to the tip of your current branch (best done from master).


I think I should write a detailed guide as I guess the high level overview of the commands are not sufficient


Once applied / merge you can mark it as merged on gitworkshop


We only submit from forks, over PRs. So far. So that everyone can review and comment before the merge, and to keep the source repo neater.

Trying to figure out how to use the patch stuff. What exactly is the difference?


Would probably help more people to use it.


Yes. In could also do some 30 second screencasts to show how quick and easy it is


I'm also thinking about adding a git remote helper so that you can use more native git commands like `git branch -r` to list proposals


Like a throughput to git?


Remote helpers allow git functions like fetch and push to work over other protocols like ssh or https or nostr. The nostr protocol could proxy requests to the 'clone' address specified in the events and then make proposals on nostr act as remote branches.


a proposal (created with `ngit create`) is like a PR which lives on nostr instead of a fork. Anyone on nostr can comment on it before it is merged. They can view proposals with `ngit list` and check them out as branches (like you can with a PR)


should be fixed now. I created an issue in the gitworkshop.dev repo for this:
nostr:nevent1qqspl4md9965g7ynn6297hsglu7p8yfm3pkdtg6agpyrjjaly7ttwhspz3mhxue69uhhyetvv9ujuerpd46hxtnfdu22pp0q


Where can I see it?

All I get is this:
https://nostrcheck.me/media/fd208ee8c8f283780a9552896e4823cc9dc6bfd442063889577106940fd927c1/393c6317517b6d700330ff5f3c251d2fd535d0ce07b649df2a910114af7ede4d.webp


Where can I find out the eventID, so that I can look at it someplace like njump or nostrudel?

nostr:npub1gnwpctdec0aa00hfy4lvadftu08ccs9677mr73h9ddv2zvw8fu9smmerrq
nostr:npub10npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qzztl5h

Do your relays accept the ngit notes? Because those are my dev-npub's mailboxes.


The events from this NIP:
https://github.com/nostr-protocol/nips/blob/master/34.md


Did you successfully send one? I cant see it on any relays.
When you ran `ngit send` it would have told you if each relay accepted your patch event(s)


I think I have a problem because I have two different repos with the same name, but different source repos.

One is a fork of the other


Isn't it confusing to maintain two different repos with the same name?


This is what I got on the command:

logged in as SilberWitch
 ✔ 1 events   wss://nostr.sovbit.host/
 ✔ 1 events   wss://theforest.nostr1.com/                                       posting 1 patch with a covering letter...
 ✔  [my-relay] [repo-relay] wss://nostr.sovbit.host/
 ✔  [my-relay] [repo-relay] wss://theforest.nostr1.com/
 ✔  [default] wss://relay.damus.io
 ✔  [default] wss://nos.lol
 ✔  [default] wss://relay.nostr.band
 ✘  [default] wss://relay.f7z.io error: recv message response timeout


Could you send it again (`ngit send`) and send a screenshot of the CLI output?


I just realized that I accidentally named the repo "SilberWitch" instead of gitcitadel. 🤦♀

How can I fix that?


When I do ngit init, what does the "name" field refer to? I thought it was my username, but is it the repo name?


I had to guess what the fields meant, when filling everything in, so now it looks like this and I think that's all wrong.

https://nostrcheck.me/media/fd208ee8c8f283780a9552896e4823cc9dc6bfd442063889577106940fd927c1/c4a4bcf9ec076b7ad9038a986832eed0e2b69c09600491c84cde0c5bff64af5a.webp


your events were successfully received by the relays.
for some reason they are not being returned when queried by ngit or gitworkshop.dev.
I manually queried the relay for your patch events and found them. so this link will work:
https://gitworkshop.dev/repo/SilberWitch/proposal/5f21ee609ea743feafb9c13144c096c863f13592bbcf3912ece6b03875798511
I'll look at the issue of them not showing up on the gitworkshop.dev repo page and ngit first thing tomorrow.


It should include a one sentence description of what the field means. Shouldn't it?


Everything other than identifier can be updated by running `ngit init` again


okay

What do I have to put in the clone and website fields?


yes 😂

Never occured to me to rename them, since I've never maintained the source and the fork, before. Used to only work with branches on the source repo.

I should go rename all my forks, so that I can identify them.


Clone is the URL of the git repository on a git sercer used for cloning and fetching the latest tip of the master branch. It defaulted to origin. Website is for the URL of the projects homepage / best URL to find out more about the project.


What are the purposes of the forks? Do they differ signifcantly? Why not have them as branches of the same repo?


We're using the same as branches, with each dev having a fork that they're working on and then making a PR to the source repo for merges.

Just looks neater in the source.


Each dev would use the source repo to get the lastest changes. Then use `ngit send` to create proposal (PR equivalent) when they ready to share what they are working on. They can update the proposal with `ngit push` or after a rebase they can use `ngit push --force`. `git merge`  can be used for merging into the master branch to be pushed to the source repo.


Okay, looks much better. 😅  I was so confused!
Just prefacing my forks all with "sw_".

https://gitworkshop.dev/repo/sw_gitcitadel


Im not sure.


It only makes sense to have a nostr repo event for a distinct repository that you would want to receive proposals for or raise issues against. This typically wouldn't be one per developer.


Okay, so then it would only need to be the source repos and not my forks. That makes sense.


If a user-npub wrote me on Nostr with a bug, how do I turn that into an issue? With some sort of a quote or reply?


hu cool.


I'm going to keep testing on my fork, tho, to keep the source one neat.

Let me go try to send something again and get you the output.


Hey, nostr:nprofile1qyfhwumn8ghj7un9d3shjtnxxaazu6t09uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqyzsq3hh327t0h2dq6matqn5064cgj2zanl2stkj6s0lg4t2h5dty6xk8zw9  that markdown looks very pretty. I like that. Displays on GitWorkshop better than on GitHub.


Not at all. If both forks have a nostr repo event with the same 'earliest-unique-commit' then it might struggle. It shouldn't take much to fix edge cases like this


Here is a more detailed answer:
are we still talking about 'fork' with the github meaning rather than traditional meaning?
ngit will look for a nostr repo event  with the same 'earliest-unique-commit' as the first commit in the current git repo and post to that by default.
If it cant find any nostr repo events will ask for a naddr, which you can find on gitworkshop.dev.
If you commit the 'maintainers.yaml' file that gets created during `ngit init` it will post to the repo events it will ignore repo events from npubs not specified. This is a way of protecting against SPAM or scammers trying to claim your repo.


Thanks.


The table, especially. Neat and streamlined.


Ah, is that why my sw_gitcitadel proposals show up under the gitcitadel repo?

I actually like that, as it's more like a PR on GitHub, that way, but I thought it was an error.


I am tracking this issue through:
nostr:nevent1qqs0uwwmd05tu6jqcjd55k5he6tvsxlu2xxstd3xnykr2504n3t2qvslvnhqc


oh nice, working on git stuff over nostr?  The relays accept all kinds by default.  There are settings to filter them just like with pubkeys if you wanted to do that.. (like to create a relay that only accepts git notes, or the opposite).


a relay plugin to enablr repo benefactors to pay a relay to accept events related to the relay would be cool


relay.tools can do this


How would it know if the event was related to the repo? All proposals and issues would tag the repo event but on these might not