Tracking PeopleAggregator releases with Subversion vendor branches
From PeopleAggregator
- Read this for way more detail: http://svnbook.red-bean.com/en/1.1/ch07s05.html
If you are making a project that is based on PeopleAggregator, you will want to modify code, but probably still maintain the ability to upgrade to later PA releases as they appear.
The recommended way of doing this is to use Subversion vendor branches.
[edit] Initial setup - for example with PA v1.2pre1
I'm assuming that your repository is http://svn.example.com/svn. If you're someone inside BBM or Tekriti, the repository will be http://projectname.svn.broadbandmechanics.com/svn, so replace svn.example.com with projectname.svn.broadbandmechanics.com below.
mkdir pa_tmp cd pa_tmp svn export http://update.peopleaggregator.org/svn/release/pa svn import pa http://svn.example.com/svn/vendor/pa/current -m 'importing PA v1.2pre1' svn copy http://svn.example.com/svn/vendor/pa/current http://svn.example.com/svn/vendor/pa/v1.2pre1 -m 'tagging v1.2pre1' svn mkdir http://svn.example.com/svn/trunk -m 'creating trunk' svn copy http://svn.example.com/svn/vendor/pa/v1.2pre1 http://svn.example.com/svn/trunk/pa -m 'creating trunk from v1.2pre1' cd .. rm -rf pa_tmp
Now you can check out your freshly copied PA code from http://svn.example.com/svn/trunk/pa and work on it.
[edit] Merging code from a new upgrade
Once an upgrade, say v1.2pre6, arrives, the process is to download a copy of the new code, then merge it into your new system.
mkdir pa_tmp cd pa_tmp svn export http://update.peopleaggregator.org/svn/release/pa svn_load_dirs.pl -t v1.2pre6 http://svn.example.com/svn/vendor/pa current pa
See if you can find files which have been renamed, etc, and match them up. When done, enter F.
Now go into your working directory, or check out a copy if you like:
svn checkout http://svn.example.com/svn/trunk/pa cd pa
Tell Subversion to apply all changes between v1.2pre1 and the current release (v1.2pre6) to your working copy:
svn merge http://svn.example.com/svn/vendor/pa/v1.2pre1 http://svn.example.com/svn/vendor/pa/current .
If there were any conflicts (because some code that you changed was also changed in the release), sort them out, and finally check the merged code in to your repository:
svn commit -m "merged with official PA v1.2pre6" cd ../.. rm -rf pa_tmp
