Visual Studio Team Systems suppports a feature called shelving which enables one to "pause" work on a piece of code until it you area ready to keep on working on it. To do this with another version control system, like subversion, is a matter of process. The following two posts show how it could be done with subversion but I'm sure the concepts could be applied to other source control systems as well: