3 ms·
> It's insane that git occupies so much mental space considering it's a single-purpose tool. No arguments here. What I meant is that it's very hard for me to u
by goku12 3y ago
> It's insane that git occupies so much mental space considering it's a single-purpose tool.
No arguments here. What I meant is that it's very hard for me to understand what's happening behind the scenes unless I'm using the CLI. The tool is hard nevertheless.
> If midwit geeks weren't so vain and wanted to feel cool for using the same VCS as the Linux kernel, we could've been using something else.
The fact is, git won. I was personally into mercurial. The CLI was much more sane.
One of the biggest issue with git is that it uses both the snapshot model (for the storage format) and the diff/patch model (for many operations like merge and rebase). You have to know which of these applies to any operation for it to make sense.
- Hendrikto 3y ago> One of the biggest issue with git is that it uses both the snapshot model and the diff/patch model Git always uses snapshots. The diff thing is just a question of how this is exposed in the UI.
- goku12 3y agoThe tree state is saved as snapshots. However, operations like merging (3-way merge) and rebase are certainly based on diffs/patches. For example, consider the case of an interactive rebase where you delete a commit. If it was based on snapshots, only that commit should disappear. The changes introduced by that commit should remain in the subsequent snapshots/commits. However, that is not what happens. The change introduced by the commit disappears from all subsequent commits/snapshots. This means that all the subsequent snapshots are modified by subtracting the patch from the commit that was deleted.