Comment by qudat

1 year ago

I’m working on a git collaboration server that doesn’t require a git remote.

The premise is to leverage format-patch with an ssh app and then rely on range-diff:

https://pr.pico.sh

I’m curious what others here think

This is more or less how Phabricator (dead, but lives on as Phorge[1]) works. It uploads/downloads patches via HTTP.

IMO, using Git remotes but with a one-review-unit-per-commit approach like Gerrit has a much better UX. Shipping around diffs has all sorts of sharp edges, especially when you stack multiple changes or binary data, and you end up reinventing native Git functionality but worse.

Phabricator started out as "paste your diff here" and eventually ended up with a CLI tool that reinvented half of the Git CLI.

[1]: https://we.phorge.it

I think it is an interesting take. It might be nice to point folks towards https://github.com/picosh/git-pr it has a better explanation.

So this is like the email source diff/patching workflow but extended to use ssh instead?

I try and limit my ssh access to servers and endpoints that I control. The attack surface for ssh is actually quite large.

It seems since you are shipping a patch, that it could be signed with your ssh key, but posted over https. This would make running a server way way more portable. Everything else about it seems quite nice.

Since the language is Go, creating an https service should be just as easy correct?

I like the idea of dynamic RSS streams with patches flying around.

https://www.phind.com/search?cache=izzjsrslnqwrwmh3mtxwyrx4

  • Exactly. People don’t struggle with format-patch, they struggle with integrating patches into their email clients.

    Our design philosophy is to not require the project’s git repo in order to enable developers to collaborate.

    We are also trying to make this service a supplement to other code forges. Competing with GitHub is a huge uphill battle, instead I’m thinking of this service more as a patch-bin instead of a git collaboration tool for corporate entities