My company uses developer branches. We merge any changes on trunk into our branches regularly, then merge our developer branch's head onto trunk's head when we want to deliver our changes. Our practices are quite like Feature Branches described in the svn book
Our branch->trunk merges are slowing down on some larger projects, and I'm wondering how the merge actually happens. We've got a working copy of trunk and of our branch, they're both committed and fully updated, but it doesn't look like I can use those working copies for the merge comparision. According to svnbook it looks like, if you specify working copies instead of URLs, it just uses those WC's as an 'anchor' and gets the URLs from there, after which it gets all the files from the server for doing the compare.
I'm confused about how this is actually happening. Wiresharking the traffic shows me that it's downloading some (maybe all) of the files needed to compare. So is it taking the worst of both choices (server-side and client-side) and downloading new copies for everything before comparing?
Since I've got up-to-date WC's of both trunk and branch, why can't I do:
merge ./trunk ./branch ./trunk
Any insight on how this works would be appreciated, or general advice on how to debug the slowdown or improve it.[/code]