Switching a Cerb5 installation from Subversion to Git
Introduction
Prior to the release of Cerb5, the official recommendation was to use Subversion for installing and upgrading the app. This made sense years ago when support wasn't prevalent for the next generation of distributed version control tools like Git. Today, Git is available for all major platforms. Our official repositories are managed with Git and collaboration is provided through GitHub.
If you're still using Subversion to manage your Cerb5 installation, we highly recommend that you migrate to Git.
As of January 2012 we have discontinued hosting our own Subversion repositories. If for some reason you are unable to use Git, you can switch to our new Subversion repository at GitHub.
Make the change
Move your existing Cerb5 installation to a directory named cerb5-svn.
Make a backup
Make a recent backup using the instructions here:
http://wiki.cerb5.com/wiki/Backups
Keep local modifications
Change directory to your existing files:
cd cerb5-svn
Make a patch of your local modifications:
svn diff > my_changes.patch
Find your existing version
grep "APP_VERSION" -m 1 api/Application.class.php
Download the same version of Cerb5 with Git
Return to the parent directory where cerb5-svn is located:
cd ..
Perform a fresh checkout of the Cerb5 project files from Git using the same version. Replace <version> in the command below with the version number from the previous section above with the following convention:
5.5.0->5.55.5.2->5.5.2
In other words, if the version ends in .0 then just include the first two numbers.
Checkout the latest version of Cerb5 from GitHub using Git:
git clone -b <version> git://github.com/wgm/cerb5.git cerb5-git
Merge the copies
Remove the .svn subdirectories from storage and then move it to cerb5-git:
find cerb5-svn/storage -type d -name '.svn' -exec rm -Rf {} \;
mv -n cerb5-svn/storage/* cerb5-git/storage
You can then apply your patch to the new files:
cp cerb5-svn/my_changes.patch cerb5-git
cd cerb5-git
patch -p0 < my_changes.patch
rm my_changes.patch
Finish up
If you placed any custom plugins in the /features directory, move them from cerb5-svn/features to cerb5-git/storage/plugins. This is where all custom plugins should go in the future. Be careful to not copy any official plugins.
Move or rename the cerb5-git directory back to your desired location.
Make sure all the files are owned and readable by the webserver user, and the /storage directory and its contents are owned and writeable+readable by the webserver user.
This might be a good time to upgrade to the latest version using Git.
Open Cerb5 in your web browser.