I've been using git as my svn client for a few weeks now and can quite recommend it for anyone who is
- writing large amounts of for IMP or an IMP module that is shared with others
- writing code that sits in modules but is not committed back to svn for long periods
The advantages of using git as your svn client instead of straight svn include
- you can commit files locally (without sending them to the SVN repository) so that you have backups and tracking of your changes without subjecting everyone to them. For example, if you add a new class to the ISD module and have it in a working state, you can commit locally. Then if you make some changes that break something, you can see what the changes are and roll back if needed. Similarly, you can locally branch.
- you selectively commit some of your changes, even when several changes touch the same file. You just have to commit the file with the first set of changes and then are free to make another set to the same file.
- git does much better merging than svn, so it handles cases like sending patches back and forth between people with aplomb
- moving around in the imp history is very fast with git, so if an update isn't happy, going back to the previous version is trivial and fast.
If anyone is interested, a doc on how to get started can be found here:
<http://maymay.net/blog/2009/02/24/how-to-use-git-svn-as-the-only-subversion-client-youll-need/>
As a few comments:
- the first fetching of the files from svn takes quite a long time (an hour or so)
- amazingly, the resulting checkout is significantly smaller than an svn checkout despite containing the complete history of the svn project