| I think Git is a fine anti-benchmark. #1 it does fine on #2 fails because it uses jargon that's internal Git state, staging, index, etc. #3 mostly does ok but doesn't provide useful undos for stuff like shallow copying #4 `git checkout` exists. It fails this. #5 doesn't do good error prevention #6 https://imgs.xkcd.com/comics/git_2x.png exists for a reason. #7 Git is great at this. #8 No. It's CLI is huge and byzantine. #9 Git has gotten better at this, but it's not good at it. #10 There is a lot of help, docs and tutorial on the web, and with Git. So in my book Git is like 3-5, that's a failure. If you want a great CLI tool, Cargo is a stellar example. Git is a failure. |
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.