| > #1 it does fine on By default, I'd say no. But with a few config settings and one or to aliases it is excellent. > #2 fails because it uses jargon that's internal Git state, staging, index, etc. Yes, it uses it's on jargon. But before Git there were no generally known terms for those concepts. And Git's concept do exist in the real world, previous vc systems simply tried to abstract them away and failed miserably at that. > #3 mostly does ok but doesn't provide useful undos for stuff like shallow copying The reflog is a very comprehensive undo mechanism, but it is hard to discover and certainly not as easy to use an undo button. Considering the target demographics of Git, I'd say it is acceptable. > #4 This has and still is Git's weakest point. > #8 No. It's CLI is huge and byzantine. The default porcelain (Git's CLI) is inconsistent and very large, yes. But the underlying model is very elegant. To an expert user, this should matter more than consistent wording in the CLI and documentation. Although, I would still like to have that consistent wording. And because of the qualities of the underlying model it is possible to improve on the porcelain. Which has been happening for quite some time. |
What I mean is that `git status` is showing you generally what's staged, what mode it's in and so on.
> Yes, it uses it's on [sic] jargon. But before Git there were no generally known terms for those concepts.
Mercurial exists, and it's much lighter on the jargon and concepts needed to know. I'm fine if they are optional learnable stuff, like merge vs rebase. But without knowing index and staging, you're essentially confused why some commands work and some don't.
> The reflog is a very comprehensive undo mechanism
True, and I didn't say anything about it, but setting up some stuff as undoable (commits, rebase, merge) and some stuff as non-undoable (making repo shallow) is honestly indefensible.
> The default porcelain (Git's CLI) is inconsistent and very large, yes. But the underlying model is very elegant.
The Usability as I understand it is about the Interface (where Human and System meet). Whether it's CLI, GUI or physical.