On Thu, Jan 31, 2013 at 10:37:14AM -0500, Alfred Perlstein wrote: > FreeBSD has moved to Subversion a few years ago and it's worked > very, very well for us.
Thanks! That's encouraging to hear. > The one area where we are having issues is merging code from project > branches back into trunk. > > The typical workflow is: > 1) create project branch. > 2) code code code. > 3) sync from HEAD (this works great). > 4) repeat steps 2+3 until feature is complete. > 5) svn diff and apply to head then commit. > > Is there a way to do 5 automatically? > > I think the worry is mergeinfo from the project branch coming back > into HEAD. > > Any tips would be appreciated. I've read the FreeBSD svn merging docs some time ago. I'm not sure if changes have been made since, but it was probably an older version of what currently lives at this URL: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/subversion-primer.html Back then I was somewhat worried that apparently the person who wrote them didn't really understand much about how merges in Subversion work. There was irrational fear of mergeinfo propagation, to the point where the recommended practice is to remove mergeinfo before commit, which any Subversion user with a clue will know is very wrong (expect in very exceptional circumstances and only if you are equipped with sufficient expertise to deal with the consequences). What surprised me also was a complete lack of mention of the --reintegrate option, which I suspect must be causing quite a lot of grief among FreeBSD developers due to bogus conflicts during merges back into FreeBSD's head branch (i.e. the trunk). We'll need more details to help you in a constructive way, though. Can you provide more details about your steps 1 to 5, i.e. show the exact commands you're running in each step? The repository is public, after all, which will help greatly with identifying and reproducing specific problems. I'm happy to provide input for improving FreeBSD's docs to the point where FreeBSD makes the best possible use of Subversion 1.7's merge implementation, and can also provide some hints as to how future versions of Subversion will improve to make life easier in certain cases. BTW, I went over one of FreeBSD's svn wiki pages a while back, and added answers to open questions on this page: https://wiki.freebsd.org/SubversionMissing One more point, which I like to bring up whenever a FreeBSD person shows up on our lists: There is an outstanding patch in the FreeBSD ports tree which should be shepherded into Subversion's upstream sources. I'm happy to be the upstream point of contact for this but we also need someone from the FreeBSD project to drive this and digest our feedback. Because we want this feature to be generally usable and also avoid breaking functionality that FreeBSD is relying on in their custom patch, of course. So both sides need to be involved. See here for details: http://subversion.tigris.org/issues/show_bug.cgi?id=890 (and also the mailing list threads linked from the issue)