[svk-devel] Hit by merge-ticket corruption again...

Brice Figureau brice+svk at daysofwonder.com
Thu Oct 11 05:12:09 EDT 2007


Hi,

I'm still struggling against merge-ticket going backwards instead of
being properly denyied by svn when merging....

Note that I have a weak understandings of the svk internals.

Let me explain, what I found yesterday:

We are 4 developpers running svk 2.0.1 or 2.0.2 with various subversion
bindings (1.4.2 to 1.4.4), our upstream SVN repository is running
subversion 1.4.2 and is accessed through ssh, the repository was created
with subversion 1.2.

So yesterday one of my co-worker, did a svk pull, and was horrified to
find that he has lots of conflicts on code he never touched.

Carefull analysis shows that svk was trying to merge changes that were
already merged in his depot via a previous pull a few days ago.
Why did svk that ?

Well, because the last svk push done by someone else, modified my
co-worker merge-ticket in the svk:merge SVN root property. It went from
rev 4477 to 4463, encompassing several changes.

How is it possible? 
Well, I don't know, I thought that svn was smart enough to forbid such
conflict in the svk:merge property... But it didn't. I checked the 

Today, we are running in another problem...which I think is the based on
the same issue:

jfs:~/dow/trunk $ svk status
M   some modified files

jfs:~/dow/trunk $ svk commit
Waiting for editor...
Committed revision 8106.

jfs:~/dow/trunk $ svk pull
Syncing svn+ssh://server1/devl/svn/www
Auto-merging (8093, 8105) /dow/www/trunk to /local/www/trunk (base /local/www/trunk:8102).
U   some files updated
New merge ticket: 3a2cc915-d117-0410-b7b0-c6a00d66b608:/trunk:4211
Committed revision 8107.
Syncing //local/www/trunk(/local/www/trunk) in /Users/user/dow/trunk to 8107.
U   some files updated

jfs:~/dow/trunk $ svk push -l
Auto-merging (8102, 8107) /local/www/trunk to /dow/www/trunk (base */local/www/trunk:8106).
Merging back to mirror source svn+ssh://server1/devl/svn/www.
Empty merge.

Notice that the merge base rev is 8106, where it should have been 8102 I guess.

I don't have access to this particular machine, but have asked for
several svk info and a debug run of the aforementioned push command.
I'll post them when I'll get them.

I want to understand this issue and to debug it, I want to know:
 *) where merge-tickets are stored when you 'push' ? I know that the
merge-tickets are stored in the 'svk:merge' SVN root property when you
'pull', but for the reverse operation ?

 *) why do we need to put merge-tickets in a global svn property, shared
by all the users ? Wouldn't it be better to store those merge-tickets in
a file in the depot, since this information is purely local and bound to
one depot ?

I'm trying to reproduce the issue using sole svn but it seems to work
fine refusing my property commits if they conflict.

Looking at SVN bug tracking and found this bug entry:
http://subversion.tigris.org/issues/show_bug.cgi?id=2438
Could it be my issue ?

Am I the only one who encounters this issue?
Thanks for any answers,
-- 
Brice Figureau <brice+svk at daysofwonder.com>



More information about the svk-devel mailing list