1. Git does not support bound branches or lightweight checkouts.
2. It requires MSYS on Windows. (Maybe not a big problem, but btool
exists exclusively to avoid relying on MSYS.)
3. The manpages are incomprehensible if you don't already know Git
fairly well, and therefore not very useful. For instance the one for
"git push" says "Update remote refs along with associated objects",
and the one for "git reset" says "Reset current HEAD to the specified
state". This could be partially addressed if we made a page similar to
"Working with Bazaar".
4. The default behavior of basic commands is borderline malicious. For
instance, "git pull" will autocommit a merge if it applies cleanly,
even though it might not compile at all, "git diff" will not show
changes in files added to the staging area, and "git commit" will do
nothing if you don't first execute "git add". To get a sane behavior,
one needs to always say "git pull --no-commit", "git diff HEAD" and
"git commit -a".
5. The whole model of Git, where it's impossible to operate directly
on remote branches, causes a lot of artificial complications and
necessitates the existence of additional concepts such as "tracking
branches", "fast-forward merges", "remotes" and so on. This complexity
does not exist under the Bazaar model.
6. Some commands with names taken from Bazaar / SVN / CVS do something
completely different, leading to confusion. For example, "git revert"
is equivalent to "bzr merge -r -1..-2 && bzr commit", not to "bzr
revert".
-- Vinícius dos Santos Oliveira https://about.me/vinipsmaker |