Fortunately, there's a new player in the world of source control: GIT.
Git is a popular version control system designed to handle very large projects with speed and efficiency. Git falls in the category of distributed source code management tools. Every Git working directory is a full-fledged repository with full revision tracking capabilities, not dependent on network access or a central server.
Sounds great, heh? But there's no chance your CTO will stash SVN and adopt Git. This is where git-svn comes to the rescue! In a word, git-svn is a bridge between Subversion and Git:
- You create a Git workspace by importing the SVN repository once
- Make changes and commit them locally in your Git workspace
- Repeat step 2. ad lib.
- Push back your changes to SVN when you're done
I'm using this approach since a few weeks at work with success. When I push back my changes once a week to the SVN repository, a bunch of commits are made within in a few seconds, that's impressive! My colleagues know when I'll be pushing the next changes, so they can work safely until the next iteration. No more branches, no more hassle, only happy refactoring!
If you want to know more, I suggest to look at: