Personal tools
You are here: Home documentation developer MergingHowto
Views

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 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