> Mercurial wasn't as simple as Subversion.
What? Subversion is by far the most complex versioning software I've ever used.
> Git has so many gotchas, bells and whistles
The Git UI leaves a little to be desired. But inside, Git is basically just blobs, trees, commits, and refs. It'd be hard (or impossible?) to find a conceptually simpler versioning system.
Subversion pre-1.5 was a nightmare. Branch merges were by convention in commit messages. To merge 20 commits from your branch, you would do `svn merge -r 125:140 /branches/my-feature` and then note in the commit message which range you merged.
1.5 made that tracking automatic but just shoved it into a metadata field that just percolated through every directory in a project.
And if someone tried to rename a core path? In the distance, sirens.
You're right about SVN's guts vs Git. I should have been clearer that I was referring to the client cli only.
Just an example that I recently noticed when I briefly had to use svn again:
Show a diff: svn diff / git diff
Show log with diffs: svn log --diff / git log --patch
Git calling the same or similar things different (or just terrible - tree-ish? ref?) names is one of the worst things about Git.
I found that doing anything even slightly unusual in Git was pretty incomprehensible until I learned its internals, and pretty easy once I did. Fortunately as you say the internals are conceptually pretty simple to learn.