I really like how when svn merges a file that conflicts that it modifies the file and puts the two conflicting sections next to each other. This make it really easy to resolve the conflict. AFAIK with patch you just get these rejected hunks and have to figure where they overlap yourself. If anyone knows of a way to improves this I would love to hear it. Looking on the web this rename merge problem seems like an old svn problem w/ no good solution.
On Thu, Mar 15, 2012 at 1:50 PM, Eric Newton <[email protected]> wrote: > Ugh... you are not going to like this answer. There's apparently no help > in svn for resolving these file moves. > > Here's the little dance I did to get everything merged in; maybe I'll find > a reasonable way to automate it. > > 1) figure out what changes need to be merged: > > $ cd trunk > $ svn mergeinfo --show-revs eligible ../1.4 > r1300277 > r1300713 > > 2) merge the first change in, get the epic fail: > > $ svn merge -c r1300277 ../1.4 > --- Merging r1300277 into '.': > C src/assemble > Summary of conflicts: > Tree conflicts: 1 > > 3) get a diff, but fix up the paths so it will patch: > > $ svn diff -c r1300277 ../1.4 | sed 's%../1.4/src/%%' | patch -p 0 > patching file assemble/dist.xml > Hunk #1 FAILED at 39. > Hunk #2 FAILED at 68. > 2 out of 2 hunks FAILED -- saving rejects to file assemble/dist.xml.rej > > This is what you would get from a normal merge. It is a conflict. For the > moment, I'm going to ignore these changes: the trunk assembly module is > completely different, and might be fine the way it is: it's a bigger QA > question. > > 4) tell svn we're finished with the conflict: > > $ svn resolve -R --accept working . > Resolved conflicted state of 'src/assemble' > > 5) repeat for change r1300713: > > $ svn merge -c r1300713 ../1.4 > --- Merging r1300713 into '.': > C src/assemble > Summary of conflicts: > Tree conflicts: 1 > $ svn diff -c r1300713 ../1.4 | sed 's%../1.4/src/%%' | patch -p 0 > patching file assemble/build.sh > $ svn resolve -R --accept working . > Resolved conflicted state of 'src/assemble' > $ svn commit -m 'ACCUMULO-145 merge to trunk' > Sending . > Sending assemble/build.sh > > > > On Thu, Mar 15, 2012 at 11:09 AM, Keith Turner <[email protected]> wrote: > >> On Mon, Mar 12, 2012 at 2:34 PM, Benson Margulies <[email protected]> >> wrote: >> > It doesn't really make merges work much harder, since the scm's track >> the moves. >> >> Does anyone have tips on this? dist.xml was modified in 1.4. I am >> trying to merge 1.4 changes to trunk. dist.xml has moved in trunk. >> >> $ svn merge -r 1:HEAD >> https://svn.apache.org/repos/asf/incubator/accumulo/branches/1.4 >> --- Merging r1300182 through r1301010 into '.': >> C src/assemble >> Summary of conflicts: >> Tree conflicts: 1 >> maccloud:trunk rkturn2$ svn status >> M . >> ! C src/assemble >> > local delete, incoming edit upon merge >> >> So I get this tree conflict. What I want it to do is to modify >> dist.xml in the new location in trunk, but its not doing this. I have >> been looking online but have not found anything yet. >> >> Keith >>
