The premise is simple. You're using code from another source (Drupal.org or Acquia). You may make changes to the code and so will the developers of Drupal and contributed modules. You want THEIR changes and you want to keep YOURS too.
The solution is SVN Vendor Branches and the almighty svn merge command.
The trick is learning how to use/setup the vendor branch in the first place.
The following steps, and this 32 minute video, should get you going with one of the most efficient ways to manage your Drupal codebase.
All URLS below can use one of the possible protocols
- file:/// = local version control
- svn+ssh:// = svn direct through ssh
- http:// = non secure via web
- https:// = secure via web
PHASE 1: Establishing the repository with a vendor branch
svnadmin create acquia6(create repository)
tar xzf [FILE] --strip-components=1(extract within desired folder)
svn mkdir file:///acquia/repos/acquia6/vendor -m 'Making the vendor branch'
svn mkdir file:///acquia/repos/acquia6/vendor/current -m 'Making the current vendor branch'
svn import file:///acquia/repos/acquia6/vendor/current -m 'Adding current 1.0.2 release to vendor/current'
svn copy file:///acquia/repos/acquia6/vendor/current file:///acquia/repos/acquia6/vendor/102 -m 'Tagging the 1.0.2 release'
svn copy file:///acquia/repos/acquia6/vendor/current file:///acquia/repos/acquia6 -m 'Tagging my core Acquia Drupal'
svn checkout file:///acquia/repos/acquia6/vendor/current .(within the desired location)
PHASE 2: Upgrading the vendor code
curl -O http://acquia.com/files/downloads/acquia-drupal-X.X.X.xxxx.tar.gz(get the latest)
tar xzf [NEW_RELEASE] --strip-components=1(extract within folder of vendor/current) - check using 'svn info'
- svn status to find added and removed files/folders - use svngrep to add them
svn commit -m 'Upgrading Acquia Drupal to 1.2.1'(commit updated code to vendor/current)
svn copy file:///acquia/repos/acquia6/vendor/current file:///acquia/repos/acquia6/vendor/121 -m 'Tagging the 1.2.1 release'
PHASE 3: Upgrading your site code
svn switch file:///acquia/repos/acquia6/current(switch to your site)
svn merge file:///acquia/repos/acquia6/vendor/102 file:///acquia/repos/acquia6/vendor/current(THE MAGIC!)
svn commit -m 'Merged in upgrade to 1.2.1'
- Run update.php for database upgrades
- Check that your site it working as planned