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

Reply via email to