[svk-devel] Merge Problems

Jeff Slabaugh jeffs at powells.com
Thu Nov 20 13:45:32 EST 2008


Hello, all.

I asked about this in #svk, but obra suggested I bring it here.  
Basically, the issue is that our merges are periodically getting out of 
whack.

To give you a very simple example, I have two branches, QA and trunk, 
with 10 differences between them, all known, all expected.  One of those 
files needs to be moved up to trunk while the others are still waiting 
for final sign off.  I copy the file in question and svk ci it directly 
to trunk.  I rerun "svk branch --merge QA trunk -C" but now there are 
like 200+ deltas, mostly deletes, instead of the expected 9.  One other 
person was moving code into trunk at roughly the same time via a merge, 
but it was a single file, not something that would add 200 deletes to my 
merge.

This has happened to us 3-4 times since we implemented SVK a few weeks 
back.  The problem can be fixed by using SVN directly to move the 
tainted branch.  Once moved and svk is synced/updated, "svk branch 
--merge QA_tainted trunk -C" looks right once again.

Perchance have any of you seen something like this?  We've gone through 
several iterations of troubleshooting internally with limited success.  
For a while we were assuming it was an issue with not everyone having an 
up-to-date version of SVK installed, but we recently forced everyone to 
upgrade to SVK 2.2.1 w/ SVN 1.5.1.  That didn't resolve the situation.

Some more data points:

* We have 10-15 branches going at once.
* We have about 10 developers all working on the same repo.
* Our SDLC path is mainly some_branch > QA > trunk, with the various 
devs responsible for keeping their various branches in sync.
* We have a couple non-devs who tend to make changes in QA which are 
then copied/committed to trunk.  Sometimes they work on trunk directly.
* Our primary SVN server is running SVN 1.4.  Yes, we know it's sadly 
out of date, but people are dragging their feet on upgrading until 
there's a compelling need to.

If anyone has any suggestions, I'd love to hear 'em.  While it's not 
that big a deal to svn mv the funky branches around to fix things, it is 
annoying and, well, it's just a little bit dangerous to be one missing 
-C away from blowing away a large portion of our code base.  Sure, it's 
in svn and recoverable but that takes time and we still end up with a 
dead site in the interim.  Not ideal.  At any rate, any leads, ideas, 
elucidation will be appreciated...  Thanks!

JMS

http://www.powells.com




More information about the svk-devel mailing list