I haven't wholeheartedly used SVN in quite a few years, but every time I try, I miss the index a lot. Same thing with other version controls I come across (darcs is the only one I can remember with index-like behavior).
> If you have a small fix that needs to go into all your suported branches (possibly in a slightly different form), svn lets you do a clear single commit for all branches. With git you need one commit per branch (git cherry-pick will help), losing the connection.
Most projects should be able to branch off of the common merge base of all affected branches, make the patch, then merge where necessary. With single-commits-for-all-branches, what do you do if one branch needs it reverted at some point? Does "svn revert" work intelligently from a subdirectory? I suppose you could revert, commit the branch, reset the rest of the tree.
> If you need to work on multiple branches at the same time and like to use a single editor for all your files, git will get in your way by swaping the files on the filesystem and confusing the editor.
I thought there was some option for this? I found this, but it doesn't seem like a popular thing to do, so maybe there isn't. That said, I haven't had much of an issue with this behavior.
> Even for a technical user that isn't SCM-averse (aka "me"), it is much easyer to shoot oneself in the foot with git. Oh yes, you can fix pretty much any mistake after the fact, but it may require a lot of skill to do so. It's often simpler to restart the procedure from a backup that you made just before performing $TRICKY_OPERATION than it is to restore the repository to a sane state.
The reflog has indeed saved me multiple times (usually when splitting repositories into two separate ones with history or very hairy rebases). I wish more people were aware of it. My attempt at undoing a commit in SVN once involved quite a bit more work (dumping the server db, wiping a commit, restore the database) than it has ever been in git (delete server clone directory, filter-branch/rebase/commit --amend/whatever, push).