... I think I'm in favor of this. I think of the things that those services provide on top of Git should actually be ported or mapped to Git itself. Branches, pull requests, comments, etc... should all be Git objects of some sort.
... I think I'm in favor of this. I think of the things that those services provide on top of Git should actually be ported or mapped to Git itself. Branches, pull requests, comments, etc... should all be Git objects of some sort.
Currently I add the random person's fork as a remote to inspect/modify their PR branch. Was hoping for some GitHub magic to eliminate this step.
This can be a pretty common setup for some git workflows. Everybody makes a fork and takes / pushes pull requests or branches from their fork to others. The main advantage would be that if you have a lot of branches they don't all have to be on upstream and you don't need to have upstream permissions for everyone to push branches or changes to.
Nonetheless, I can see why my comment raised some confusion.
Since it keeps secrets completely outside of git, you don't have to give up the convenience of collaboration tools by client-side encrypting the whole repository, and integration/deployment is simpler than maintaining a separate encrypted secrets repo.
Here's our Show HN from last week for more detail and discussion: https://news.ycombinator.com/item?id=15330757
That's not how I understand refs, they don't even live in the .git/objects hierarchy.
cp .git/refs/heads/master .git/refs/heads/WTFFF
... no SHA-1 involved at all, no parent, history, etc.> I guess I don't understand what GitHub/GitLab does that makes branches different from Git itself [in the GP]
The GP is mistaken. Their understanding of objects & refs seems different to how I've seen them refered to in the majority of git literature.
For passing readers: refs (branches and tags) are just git's way of labelling a commit (which are stored as objects). GitLab/GitHub don't do anything special to implement refs: they're standard git refs. They're not different, they're 100% part of git.
GitHub/GitLab do add a lot of extra refs to track things like PR/MRs.
> Branches, pull requests, comments, etc... should all be Git objects of some sort.
Branches can't be objects because you'd need a way to find them with a label, and then why not use the labels directly instead?
PRs and comments can be stored in a repo (as refs and notes), but git doen't have a strongly-opinionated view on the exact workflow you should follow when developing, and thus isn't interested in recommending that people should always use forks & CRs.
I recognize and accept the argument that it might be nice for Git to track merge-requests and issues (hence my link to Fossil SCM)
Note that the commit history doesn't depend on branches: it's just a chain from commit to commits. The tree can exist withou any branch at all. That wouldn't be very useful, but it's still valid. Branches are merely pointers to a commit.