Just for the record, I've never used vi with Git. Maybe that's because I put export VISUAL="/usr/bin/emacs" in my ~/.profile....
I'm still in the process of moving from svn to git (still have a few svn repos that are heavily used), but I'm definitely a new fan of git.
As for changing the editor, you can use the git config command to set it to whatever you like:
git config --global core.editor "mate -w"
This would set up TextMate as your default editor (assuming that the mate script was in your path). A google search on "git config core.editor":http://www.google.com/search?hl=en&q=git%20config%20core.editor turns up other options.
Git for the win. I think Subversion will start to die out slowly over the coming years as the more educated developers are using distributed systems now.
I've never had to use vi (and yes I'm not mad on it), I think you might want to look at setting your EDITOR environment variable to nano / pico, that should solve your issue. Either that, there is probably a config option somewhere in git-config (core.editor) which is over riding things.
The only vi I need to use with git is to tag the update. That is simple enough.
Capistrano 2.1 supports git. See this blog post, it is pretty good: http://www.softiesonrails.com/2008/6/5/the-absolute-moron-s-guide-to-capistrano-git-and-thin-edition
So, I just spent the last few hours setting up new SVN and GIT repos. I love GIT, the only thing I don't like is "vi". I'm sorry, I don't like it. I'm not familiar enough with GIT at this point to know how to substitute it, but I plan to.
That said, my goal is to get things up and running with Capistrano. I'm glad that they finally put the "copy" mechanism in there as I thought it absolutely senseless to require externally accessible version control (especially if they're keeping their own of sorts on the server itself).
Anyway, my ultimate goal is to have something like Capistrano with a GIT mentality -- where one can simply "PUSH" the latest version of a particular repo to any given server directly without requirement for so much configuration. Obviously you can't escape some configuration, but some of these things just get out of hand. If something like this already exists -- something between rsync and Capistrano -- I'd love to hear about it.
So, what are your thoughts on the current state of both version control as well as the need/desires for further simplicity?