svn merge problems
Filed in: work, development Add comments
I seem to be having problems merging from the trunk to the multiweekview branch. Specifically, a file that should be there on the branch, isn’t.
The last time I merged trunk changes into the multiweekview branch was at
r15506, when I merged from r15455 through 15504.
That went sort of ok (I did the commit of the merge from the multiweekview/chandler directory, and not the multiweekview directory, so I had to do two commits. Oops.).
In r15531,
Bryan Stearns checked in a change that deleted a bunch of files and created a bunch of new ones that replaced them.
I know, because I reviewed the patch! (r=rae).
I will choose one file as an example:
chandler/Chandler.egg-info/resources/images/TriageNow.png.
This file existed in r15530, but it was gone in 15531.
On the multiweekview branch, TriageNow.png continued to live, since we had not merged in Bryan’s change.
Recently, I wanted to merge in that change, along with all the others that have happened since the last merge.
So I executed this command:
% svn merge -r 15505:15564 svn+ssh://svn.osafoundation.org/svn/chandler/trunk
This seemed to work well, until the final line of output from svn, where it prints a series of dots “………….”.
My computer hung for about ½ hour.
It was Friday, and I had to get going, and I didn’t want to block Jeffrey from checking in his changes to the branch,
so I hit control-C to kill the commit and told Jeffrey to go ahead, resigning myself to figuring it all out later.
Alas, later has lasted a long time.
When I did an svn diff to check how things were, svn said there were no changes.
That was a bit strange, since the commit hadn’t finished.
Or, maybe it had?
I had checked in all my changes to the branch before merging, so there was no uncommitted work on the branch
hanging around, so I was able to freely deleted the entire directory and check out the branch again.
After checkout I ran Chandler, and I saw a few changes from the trunk[!].
Specifically, the new wx toolbar appearance.
This was weird.
I checked the svn logs as mailed out and didn’t see any record of my merge being committed.
Again, “svn diff” reported nothing.
So, I did the merge again, same command line as before.
This caused output that had errors in it:
A chandler/Chandler.egg-info/resources/images/Triage.Now.Rollover.Right.png A chandler/Chandler.egg-info/resources/images/Markup.Later.StampedRollover.Left.png A chandler/Chandler.egg-info/resources/images/Triage.Done.Left.png A chandler/Chandler.egg-info/resources/images/Markup.Done.StampedPressed.Right.png Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupNowStampedPressed.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupNowStamped.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageLater.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageDone.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupNowStampedRollover.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageLaterRollover.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageDoneRollover.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupLaterStampedPressed.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageNowMousedown.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupDoneStampedPressed.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupDoneStamped.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupDoneStampedRollover.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupLaterStamped.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageDoneMousedown.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/MarkupLaterStampedRollover.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageLaterMousedown.png' Skipped missing target: 'chandler/Chandler.egg-info/resources/images/TriageNow.png‘ Skipped missing target: ‘chandler/Chandler.egg-info/resources/images/TriageNowRollover.png’ A chandler/util/triagebuttonimageprovider.pyWhat this is saying is that svn expected there to be files there, including our trusty TriageNow.png, but they weren’t there. Now, since these files were deleted in r15531, svn should be able to handle that as part of the merge. So I’m thinking the svn database is a bit screwed up. Then I hear from Bear that my Friday-night-never-ending svn process is still running on the server. He kills it for me, and I try again. Exact same results. So I **could** try adding the above files myself and see if that makes svn happy. Or maybe we need to do some svn admin work to fix things. I’m not sure.
October 29th, 2007 at 8:53 am Did you ever find a solution to this issue?
October 29th, 2007 at 11:46 am It turned out that the original “svn merge” command executed on Friday had, in fact, succeeded, and was hung in the final notification stage. It also turns out that if you are applying a change that is already in svn, it is accepted silently. I would have expected at least something like you get from patch, where it notices the patch is already there. So, basically, I was trying to re-apply a patch that was already committed, and the only thing that prevented it from being completely silently accepted was the fact that files were added and deleted.