From the README:
Piston is a utility that enables merge tracking of remote
repositories. This is similar to svn:externals, except you have a
local copy of the files, which you can modify at will. As long as the
changes are mergeable, you should have no problems.
Piston has a similar purpose than svnmerge.py which you can find in
the contrib/client-side folder of the main Subversion. The main
difference is that Piston is designed to work with remote
repositories. You should also investigate if SVK would be a better fit
From Wikipedia's 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 Piston, we retain the second meaning, to exert a force on a fluid
inside the cylinder. In our case, the fluid is the code copied from
the remote repository.
$ gem install piston
Piston Home Page: http://piston.rubyforge.org/
Have a nice day !