You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Tino Schwarze <su...@tisc.de> on 2011/07/20 16:34:24 UTC

odd svn:mergeinfo appearing and causing conflicts

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