Piston 1.3.0 is out the door. There are two significant changes: * Piston status shows the revision number of locked repositories. Thanks to Chris Wanstrath <http://errtheblog.com/>. * New piston switch subcommand to switch repository locations. Thanks to Greg Spurrier for the prompt which resulted in finally implementing this. Use piston switch like this: $ piston switch http://dev.rubyonrails.org/svn/rails/tags/rel_1-2-1vendor\rails Processing 'vendor\rails'... Fetching remote repository's latest revision and UUID Restoring remote repository to known state at r6010 Updating remote repository tohttp://dev.rubyonrails.org/svn/rails/tags/rel_1-2-1@5990 Processing adds/deletes Removing temporary files / folders Updating Piston properties Updated to r5990 (663 changes) = What is it ? Piston is a utility that eases vendor branch management. This is similarto <tt>svn:externals</tt>, except you have a local copy ofthe files, which you can modify at will. As long as the changes aremergeable, you should have no problems. This tool has a similar purpose than svnmerge.py which you can find in thecontrib/client-side folder of the main Subversion repository athttp://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge.py.The main difference is that Piston is designed to work with remoterepositories. Another tool you might want to look at, SVK, situated athttp://svk.elixus.org. From Wikipedia's Piston page (http://en.wikipedia.org/wiki/Piston): In general, a piston is a sliding plug that fits closely inside the bore of a cylinder. Its purpose is either to change the volume enclosed by the cylinder, or to exert a force on a fluid inside the cylinder. For this utility, I retain the second meaning, "to exert a force on a fluidinside the cylinder." Piston forces the content of a remote repositorylocation back into our own. = Installation Nothing could be simpler: $ gem install --include-dependencies piston-- François Beausoleilhttp://blog.teksol.info/http://piston.rubyforge.org/