I've been playing with GIT the last couple of days, and well... I can see there's an immense amount of power in it - it's great having pretty much instantaneous local commits, where you can commit code that might not even compile, just for the sake of being able to revert - and then when stuff works, you can push to your repository.
There's also some really nice properties of it being distributed - you can choose to work in a traditional way where everybody pushes/pulls from one central repository, or you can use the more distributed method where interested people pull from you... and you can mix and match. Interesting, and useful, when collaborating with several people and working on experimental feature branches.
Unfortunately, git has a pretty high complexity level, and it's pretty easy to shoot yourself in the foot. Some of the commands used in everyday management seem a bit odd, and the ability to do "revisionistic history" is scary (there's been times when I wanted that in subversion, but in git it seems pretty common to edit/delete history :-O)
And the tools... ugh. msysgit is one big crapball. libexec/git-core has 110 git-*.exe of around 964KB each. Haven't the developers heard of
static dynamic linking? Or NTFS hardlinks? (just about all of the files are identical, and those that aren't probably should have been) - at the very least, they could've made a 4kb-or-less executable that simply launch git.exe with argv replaced... it also seems superfluous that it always installs perl5, tcl, vim et cetera instead of being able to use already installed locations, if present. Even after hardlinking the identical files (which saved me ~90MB iirc), my git install folder is ~120MB on disk. Contrast that with 7.5MB for subversion.
Then there's TortoiseGit... which does seem to work OK, but it requires the use of msysgit - and it does show that it depends on commandline tools and stdout piping, rather than a proper "libgit". Status progress isn't updated smoothly, and things seem a bit flaky here and there.
IMHO it's pretty darn arrogant of Linus (and whoever maintain git now) to not really consider Windows at all, but requiring posix emulation crapola. Since the git cmdline tools don't deal with GUI and probably don't require advanced OS features, how hard would it be to encapsulate os-specific details? Pretty typical, anyway... "portable" usually means "to posix systems" only - and often you're lucky if portable doesn't just mean "to (most) linux distributions".