Personally I think that if you're Linus, Git is undoubtedly the best
tool for the job; but my own workflows don't really resemble Linus'
much. However, in an Open Source world any DVCS is better than no
DVCS, and I'm glad that Git is popularizing the concept.
Oh totally. I think too many people, way too often just seem to think
that a new tool should just fit their workflow or preconceptions.
This is absolutely a bad way of going about life if you're switching
tool. It's kinda like breaching rails conventions, you can do it, but
it's probably going to hurt you, real bad.
Just the same way as patches should be supplied in the original
authors coding style, and I will even go so far as to mostly use their
own choice of VCS too, I personally believe that you shouldn't be
unwilling to learn new styles. Moreover, like in a martial art, the
more styles you can perform, the diversity tends to a higher
capability and/or quality of practice.
My 'workflow' with git + hg are almost identical, however, so I don't
really see anyones argument on these things. Maybe if you work on the
linux source tree often, or you're unfortunate enough to be one of the
few with an old svn repo that's over 8 gigs or so, then you'd want to
choose one over the other, but seriously, most developers don't even
know how to use svn yet, apart from checkout and commit. Hell I've
seen a lot of people deploying with checkout, and committing by typing
'commit' every time (under svn).
As for workflows with things like git-svn, I don't know any *nix user
in their right mind that wouldn't alias out stuff.
My workflow is like this:
(some_vcs) update / pull
(some_vcs) status
(some_vcs) branch / checkout
(some_vcs) add / remove
(some_vcs) commit
(some_vcs) distribute
And this only really gets shorter under CVS and SVN, so go figure.