Yes. two approaches: 1. git's `iterdiff` could be used to generate this within ngit and submit it as part of the cover letter (if one is included). There is too much duplication here and there is no garentee that PRs will include this as they may be generated by other tools. 2. apply the patch and output the diff. this could either be done in browser or by a proxy. Ideologically I don't like the idea of being overly reliant on a proxy as I think reliance on back-end infrastructure reduces the simplicity, robustness, and censorship resistance nature of a client. It looks likely that gitworkshop.dev will do a *shallow clone in the browser to deliver files and other git information. Experimentation is needed to see if PRs can be applied without checking out (and downloading) just the reliant files to the PR rather than all files in the latest state. Otherwise this could be bandwidth intensive for the user. Another possibility I have been thinking about is having nostr specific git implementations (like song) apply PRs submitted so the commits could be downloaded via the efficient git protocol and potentially could be used to access the PR diff in a bandwidth efficient way. Ultimately it would be ideal if we could do approach 2 with everything done in a bandwidth efficient way in the browser. *for context see View quoted note →

Replies (3)

Yes. I think I've mentioned it before but I'm planning on using blossom as a fallback for large commits that result in events that are so big relays won't accept them. I think this is the bestway of doing it without relying on the contributortoo indefinitely host a git server with the patch on it. This does add complexity and depending on how it was handled in the interface, effect other NIP-34 clients as they may no longer be displaying all PRs submitted unless they add at least partial support. I'd love to get the input from your team on this. Could I join one of your dev calls to discuss it with you?
I'm definately not interested in hosting a central one as I don't want to create a point of centralisation and I do host content. You wouldn't need an instance per repo but you'd need to use an instance that you or someone else is hosting and allowing your pubkey to write to. What in suggested would just make pulling proposal commits marginly more efficient. Thinking about it, probably only if the commits where too big for events and you had to use an alternative like I just mentioned with blossom.