A while back, Ross Burton wrote an excellent
tutorial for using vendor branches in subversion. I used this tutorial, or one like it, about a year ago when adding a vendor branch to one of my own projects,
jpilot-icalendar.
A few days ago, I needed to update jpilot-icalendar with a new vendor version. I couldn't remember exactly how to do that, so I googled "subversion vendor branches" and found Ross's tutorial. As I was going through the steps, I discovered that
svn_load_dirs
was no longer installed on my system. I assumed this was a casualty of my recent
hard drive failure and started looking for the package it belonged to so I could reinstall it. After a bit of digging, I found to my horror that
svn_load_dirs
had been
removed from the Debian
subversion-tools
package. There was mention of an
svn-load
command, which "should function as a drop in replacement."
I couldn't find any documentation on
svn-load
, so I setup a test subversion repository to test it. I am happy to report that it does seem to be a drop in replacement for
svn_load_dirs
, at least to the extent that I used it.
Here is how I originally imported the vendor source:
$ svn import libical-0.23 \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/current \
-m "Importing libical-0.23"
$ svn copy \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/current \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/0.23 \
-m "tagging libical-0.23"
$ svn copy \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/current \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/trunk/libical \
-m "bringing libical-0.23 into main branch"
Then I updated to libical-0.24-RC4:
$ svn_load_dirs \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical \
-t 0.24-RC4 current libical-0.24
$ svn merge \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/0.23 \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/current \
libical
That brings me up to a few days ago, when I wanted to upgrade to libical 0.31. Here is how I did that:
$ svn-load \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical \
-t 0.31 current libical-0.31
$ svn merge \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/0.24-RC4 \
https://jp-icalendar.svn.sourceforge.net/svnroot/jp-icalendar/vendor/libical/current \
libical
As promised, the
svn-load
command was a drop-in replacement for
svn_load_dirs
.
Edited 08/02/2008 11:11AM EST:Fixed layout again, after reading this handy
guide.