changed:
-
'''Disclaimer: this might be obsolete, as the current workflow is based on Git'''
Often you'll want to merge changes you've made on one branch (say, a Pd-extended release branch) back to the trunk, or vice-versa.
An SVN branch is simply a copy of a directory
at a certain revision with a shared history up to the point of
copying. You can find the exact revision of a branch's branching by
using "svn log --stop-on-copy", so in this case:
'svn log --stop-on-copy https://pure-data.svn.sourceforge.net/svnroot/pure-data/branches/pd-extended/v0-40/abstractions/senderfruit'
tells me that my directory was copied over at revision 9819.
So, now that I know where I'm starting from, I pull down a copy of the
branch I'm merging into (merging happens locally in case of
conflicts):
'svn co https://pure-data.svn.sourceforge.net/svnroot/pure-data/branches/pd-extended/v0-40/abstractions/senderfruit'
'cd senderfruit'
then merge everything from 9819 to the present (from the trunk):
'svn merge -r 9819:HEAD https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/abstractions/senderfruit'
and, most importantly, I leave a note in the log of what I merged so
that if I want to merge again, I'll know where I left off.
'svn ci -m "merged r 9819:9852 from trunk/abstractions/senderfruit"'
As you'll note, all this revision bookkeeping is a giant pain in the ass.
That's being supposedly fixed in SVN 1.5, where you'll be able to
simply say "svn merge [URL] [WorkingCopy]" and it will figure the rest
out.