Today's situation: how to upgrade an SVN-managed Drupal installation. My current Drupal core is 6.14 and I need to get to 6.15
My svn path looks like this:
https://mysvnserver/svn/thesite/trunk
All my active development is occurring in trunk. How do I easily merge in the 6.15 changes? It turns out that I could have been better prepared for this situation by implementing the "vendor branches" approach. This method is described in the SVN book:
http://svnbook.red-bean.com/nightly/en/svn.advanced.vendorbr.html
Here is a Drupal-specific discussion about implementing the vendor branches approach for a Drupal site:
http://www.davidgrant.ca/maintaining_vendor_sources_with_subversion
This is nice because it allows you to merge the new Drupal files using the branch merging features of SVN. Since I was not prepared for this situation by having the Drupal core in its own branch, I have some manual work ahead of me. I used this as a guide:
http://thedrupalblog.com/upgrading-subversion-integrated-drupal-site-part-2
The idea outlined by Eric is to diff your current and destination Drupal core. If there are only file modifications you can just copy those files on top of your SVN trunk and then commit the changes. If there are added/removed directories or deleted files in the destination version, it gets tricker and you will have to make those changes by hand. For point-releases (security upgrades) this usually isn't the case.
One thing Eric does not cover is the process of copying the destination files on top of your SVN trunk. An easy way to do that is to use the find command and pipe its output to xargs for the sake of running cp:
robert@host /tmp/drupal/drupal-6.15 $ find * -type f | \
xargs -I {} cp {} /var/www/localhost/htdocs/thesite/{}
For some reason that did not copy the .htaccess file, I'm not sure why.