Personal tools
You are here: Home documentation developer MergingHowto
Views
MergingHowto copied

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.



Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser