1. 5
  1.  

  2. 1

    Interesting read. Currently, my repositories have remotes on both GitLab and GitHub; however, I’ve been considering setting the primary remote to SourceHut and delegating the GitLab and GitHub mirrors as second-class mirrors.

    It’s important to remember that git is already decentralized and federated, and has built-in support for what GitHub has re-implemented and branded as “pull requests”. Git can already format a patch from your local repository and email it, regardless of which code forge is being used (if any). Web interfaces should be optional; git itself has everything needed for asynchronous collaboration. Synchronous collaboration can already be provided through IRC.

    1. 2

      I sent a coworker a Git patch once, he had literally never seen a diff before and didn’t know what it meant.

      1. 2

        This seems to be a part of a depressing trend of people treating “git” and “GitHub” equally. It’s truly saddening to see a proprietary service embrace, extend, and partially extinguish an open, decentralized protocol.

      2. 2

        … and has built-in support for what GitHub has re-implemented and branded as “pull requests”.

        There’s a sense in which this is true, but I don’t think it’s very meaningful for the vast majority of users in practice. Obviously a mailing-patches-around approach can be really powerful, I’m not disputing that. I just don’t think it amounts to anything like the same experience for most users, and getting to a place where it’s even workable is a significant hurdle.

        If git’s model actually hosted a widely-understood first-class concept of code review and standard tools (including nice point-and-click ones) could be used to manipulate it and push it around along with other objects, well, that’d be another thing. But it doesn’t right now. You get glimpses of this kind of thing’s potential with something like Gerrit’s storage of review metadata in git-notes, which is pretty neat, but mostly no one knows it exists even in the rare case where they use Gerrit…