Piston-migrator is a project mainly written in PHP, it's free.
Moves a SVN project (with svn external) to git and piston
The main reason for migrating a project from SVN externals to Git/Piston is to make it easier to apply future updates. The SilverStripe codebase is now on github, so any future updates will have to be applied using "piston update".
Any project that is currently on SVN branches/2.4 or is being upgraded to SilverStripe 2.4+ should be migrated to Git/Piston.
If a project is on its own project branch, then migrating to Piston is difficult. This task involves switching the project to piston and merging any project-specific commits back into the repository (or integrating them into core, if they are relevant fixes).
Ideally, we combined this work with upgrading of the project to the latest version of SilverStripe. So, best to propose an upgrade to the client.
The way to handle switching from a project branch is to first change the svn:externals to a branch or tag (who's equivalent can be found on github), then run the script, then re-apply all the commits in the project branch, as necessary.
Requirements:
Install this script by running the following commands:
sudo gem install piston
sudo pear upgrade --force PEAR
sudo pear channel-discover pear.phing.info
sudo pear install phing/phing
git clone git://github.com/candidasa/piston-migrator.git piston-migrator
Then run the script by running:
phing -f piston-migrator/build.xml
Here is what the script does:
Runs the commands to do the following: