4 ms·
GitHub's greatest win has been convincing everyone that "pull request" means having a web interface for code review as well (conflating sharing code with review
by quectophoton 2y ago
GitHub's greatest win has been convincing everyone that "pull request" means having a web interface for code review as well (conflating sharing code with reviewing it) and can only be done by creating accounts in websites; and that patch-based workflows can only be done through email.
They even convinced people that repository clones are called "forks" when they have a web interface but not when they're local.
I like that this project is trying to remove those misconceptions.
Of course if the contributor already has their own publicly available repository, then they can send you a pull request through HackerNews if they want.
Hey I made some performance improvements, they are at https://example.com/git-pr.git on branch `improvements`.
That was a pull request. You can check out changes with `git pull https://example.com/git-pr.git https://example.com/git-pr.git improvements` and review them.
I've also done ad-hoc patches through Slack, using `git diff` and `git apply` but the idea is the same.
And yes I've also done stuff like this but with just `git push` instead of `git format-patch | ssh` (you want to look at pre-receive hook) messing around with friends on IRC. The problem is not how possible or easy it is, the problem is "just" gaining traction and having a good plan for moderating The Stuff People On Internet Will Upload.
See GitTorrent for another (unrelated) example of a good idea that never gained traction.
- ithinkso 2y agoAlthough I do agree with your overall sentiment > the problem is "just" gaining traction and having a good plan for moderating The Stuff People On Internet Will Upload. See GitTorrent for another (unrelated) example of a good idea that never gained traction. maybe there is a reason why github gained traction
- LudwigNagasena 2y agoGitHub's greatest win has been good UX. They didn’t need to convince people much.
- xigoi 2y agoYou mean the UX where you have to make an entire fork of a project in order to add one line of code?
- pindab0ter 2y agoWhat would the alternative be, as you can't just edit someone else's repo? Besides just cloning it and making the change locally, of course.
- aftbit 2y agoIMO the alternative would be for GitHub to have a lightweight process for creating a PR that doesn't require me to copy the project into my namespace.
- xigoi 2y agoSending a patch to the maintainer.
- MaxBarraclough 2y agoRight. Email can be used for this. This is how git was originally meant to be used, and this model is still used by the Linux kernel. See also the SourceHut forge software, which is built around this model. * https://git-send-email.io/ https://git-send-email.io/ * https://drewdevault.com/2022/07/25/Code-review-with-aerc.html https://drewdevault.com/2022/07/25/Code-review-with-aerc.htm...
- Sesse__ 2y ago> What would the alternative be, as you can't just edit someone else's repo? git push directly to the repository, in a separate branch namespace. This is how e.g. Gerrit works (pushing to a special ref makes a review, which is essentially the same as a pull request). > Besides just cloning it and making the change locally, of course. With GitHub, you cannot do that and get a PR out in the other end. You _must_ fork the repository into your own user/organization, push to that and then send a PR from that.
- unshavedyak 2y ago> git push directly to the repository, in a separate branch namespace. This is how e.g. Gerrit works (pushing to a special ref makes a review, which is essentially the same as a pull request). What's the material difference? They build special mechanisms to provide access control for sub namespaces, which sound a lot like "forks". Also i have no clue on their backend (iirc this info is researchable tho), but i wouldn't be surprised if functionally that is exactly how they do it anyway. It's all content addressed, i doubt they pay 2x the storage anytime you fork a repo right?
- tiffanyh 2y ago> “convincing everyone that ‘pull request’ means having a web interface” What’s more convenient, making this accessible via the web … or forcing the use of SSH? I don’t disagree with your point, and find pico.sh super interesting - but web is a much lower bar than ssh.
- koolala 2y agoUnless... you use the Web to ssh!
- quectophoton 2y agoYeah that part was mostly because people tend to think in terms of "pull request, therefore web" or "email, therefore messing around with weird configs and stuff". Tell someone that they can use Discord instead of email and they're probably like "you can do that?!". It's the same as when people say "GitHub" when they mean "Git"; or when they ask for your GitHub[1] to read some code. It's understood what they're trying to say, but thinking that "GitHub" is the same as "Git" causes unnecessary bias in thoughts. Using a different ecosystem as example, you can see this happening with ActivityPub implementations being biased towards Twitter-like usage thanks to Mastodon (where here ActivityPub would be equivalent to Git, and Mastodon equivalent to GitHub). But thankfully there's people who know they shouldn't be conflated, and are slowly bringing us collaboration between Git repositories through ActivityPub, starting with a web implementation (because as you say it has the lower barrier to entry). This should open more doors to more creative "bridges" that integrate with this ActivityPub flow. A more clear bias you see everywhere is that Git forges tend to just copy GitHub's flat URL structure of "username/reponame". It's rare to find something that does not have a flat structure like that (e.g. "username/hackernews/repo-for-that-thread") (yes I'm keeping "username" in the URL on purpose but it doesn't need to be there). Don't get me wrong, I like to organize things relatively flat most of the time, but I really appreciate a nested structure when I mirror thirdparty repositories (e.g. "example.com/mirrors/github.com/username/reponame"). So yeah, I like that from time to time we're getting projects like this that try to improve git collaboration and start from a point of view different than mimicking GitHub on everything. [1]: I've noticed when people ask for repos to read code they tend to ask for a GitHub link, but it's understood that a link to some Codeberg/Gitea/cgit/stagit instance also works.
- deleted 2y ago[deleted]