[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

odd svn:mergeinfo appearing and causing conflicts

From: Tino Schwarze <subversion.lists_at_tisc.de>
Date: Wed, 20 Jul 2011 16:34:24 +0200

Hi there,

we've successfully migrated from CVS to SVN recently and we are now
facing an oddity during merging. We are using Subversion 1.6.17 on
client and server.

Repository structure is like this:

/ourstuff/ourproduct/1.0/MODULES/mod_a
/ourstuff/ourproduct/1.0/MODULES/mod_b
/ourstuff/ourproduct/1.0/MODULES/...

-> mod_a ... mod_x get's branched (=copied) to customer dev branch

/customer/project/1.x/dev/MODULES/mod_a
/customer/project/1.x/dev/MODULES/mod_b
/customer/project/1.x/dev/MODULES/...

-> from there the modules are branches (=copied) to customer prod branch
/customer/project/1.x/dev/production/MODULES/mod_a
/customer/project/1.x/dev/production/MODULES/mod_b
/customer/project/1.x/dev/production/MODULES/...

Then, merges are performed from ourproduct->project/dev, then
project/dev->project/dev/production. (We chose this non-standard branch
scheme because we can see branch relationship that way and also svnsync
only the customer-relevant part of the repository.)

Now we had a mysterious conflict popping up. The first merge
ourproduct->project/dev worked fine but the merge project/dev to
project/dev/production produces conflicts on the svn:mergeinfo property.

The strange thing is: There is no svn:mergeinfo on the source module
(say ourproduct/MODULES/mod_a) BUT an empty one has been created on the
branched module (dev/MODULES/mod_a).

> svn log --stop-on-copy ^/customer/project/1.x/dev/MODULES/mod_a
[...]
r27322 | ...
[...]
   A /customer/project/1.x/dev/MODULES/mod_a (from /ourstuff/ourproduct/version/MODULES/mod_a:127321)

> svn proplist -v -r27322 ^/ourstuff/ourproduct/1.0/MODULES/mod_a
(no output)
> svn proplist -v -r27322 ^/customer/project/1.x/dev/MODULES/mod_a
Properties on '$REPOURL/customer/project/1.x/dev/MODULES/mod_a':
  svn:mergeinfo

The same empty property is of course copied to
dev/production/MODULE/mod_a and causes a conflict when merging from dev
to production.

The file dir_conflicts.prej contains:
> Trying to change property 'svn:mergeinfo' from '' to
> '/ourstuff/ourproduct/version/MODULES/mod_a:27322-27324', but it has
> been locally deleted.

The property has not been deleted - it was there, but empty:
> svn proplist -v ^/customer/project/1.x/dev/production/MODULES/mod_a
Properties on '$REPOURL/code/customer/project/1.x/dev/production/MODULES/mod_a':
  svn:mergeinfo

The directory properties after merging are:
> svn proplist -v .
Properties on '.':
  svn:mergeinfo
    /customer/project/1.x/dev/MODULES/mod_a:27324-27341

-> correct.

So my questions are:

1. Where does the empty svn:mergeinfo come from? (Might it be connected
to one spurious svn:mergeinfo somewhere down in mod_a in the source
branch?)
2. How may I prevent further conflicts?

Thanks,

Tino.

-- 
"What we nourish flourishes." - "Was wir nähren erblüht."
www.tisc.de
Received on 2011-07-20 16:35:01 CEST

This is an archived mail posted to the Subversion Users mailing list.