3 ms·
> There’s this whole creation myth of how Git came to be that kind of paints Linus as some prophet reading from golden tablets written by the CS gods themselves
by cyberax 2y ago
> There’s this whole creation myth of how Git came to be that kind of paints Linus as some prophet reading from golden tablets written by the CS gods themselves.
Linus absolutely had a couple of brilliant insights:
1. Content-addressable storage for the source tree.
2. Files do not matter: https://gist.github.com/borekb/3a548596ffd27ad6d948854751756a08 https://gist.github.com/borekb/3a548596ffd27ad6d948854751756...
At that time, I was using SVN and experimenting with Hg and Bazaar. Both were too "magical" for me, with unclear rules for merging, branching, rebasing.
Then came git. I read its description "source code trees, identified by their hashes, with file content movement deduced from diffs", and it immediately clicked. It's such an easy mental model, and you can immediately understand what operations mean.
- pseudalopex 2y ago> 2. Files do not matter I wish weekly for explicit renames. > At that time, I was using SVN and experimenting with Hg and Bazaar. Both were too "magical" for me, with unclear rules for merging, branching, rebasing. I have no idea what you mean. > It's such an easy mental model, and you can immediately understand what operations mean. Many people disagree clearly.
- cyberax 2y ago> I wish weekly for explicit renames. You can do that in git. `git mv` stores a hint in the commit that a file has been moved. You just don't _have_ to do it.
- pseudalopex 2y ago> `git mv` stores a hint in the commit that a file has been moved. No. It appears in git status but is not committed. And it disappears from git status if the file is modified enough.