A git repository is a persistent data structure [1]. Operations are typically append-only, requiring --force flags to do any in-place mutation.
> And, well, just like in C, there's no safety pillow - if you screw up a call, something simply goes pear-shaped.
Git is the safety pillow. When you screw up your code, you restore it with git. Article doesn't mention the reflog, which is the second safety pillow hiding under the first.
The user isn't supposed to read the docs to accomplish something simple. Simple things should be intuitive. Hard things should be discoverably-solvable.
No, just imagine this for a second: you are manipulating a quite complex graph by issuing calls from a bunch of rather obscure set of functions, not knowing what will happen exactly, simply hoping, each time, that everything will be alright.
If this doesn't make you feel wretched, I don't know what can.
It's just a fucking graph. And it just needs the right fucking tool to let you change it, safely, with no tricky bullshit or second-guessing.
It's not asking for much. It's the only way it should be.
So, when you are doing something in a version control system, you ought to be constantly seeing what the state is.
5 comments
[ 3.2 ms ] story [ 21.5 ms ] threadA git repository is a persistent data structure [1]. Operations are typically append-only, requiring --force flags to do any in-place mutation.
> And, well, just like in C, there's no safety pillow - if you screw up a call, something simply goes pear-shaped.
Git is the safety pillow. When you screw up your code, you restore it with git. Article doesn't mention the reflog, which is the second safety pillow hiding under the first.
[1] https://softwaremill.com/persistent-data-structures-in-funct...
No it does not, which kind of invalidates the rest of the rant.
> Isn't It Obvious That C Programmers Wrote Git?
Yes, because it actually works.
meanwhile, i'll go to the kitchen get some pop-corn while you prove your point.