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

Re: RFC: WCNG and Issue #2915: Merge tracking and missing subtrees due to non-svn removal

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Sat, 7 Aug 2010 13:51:44 +0300

Paul Burba wrote on Fri, Aug 06, 2010 at 10:30:50 -0400:
> As described in issue #2915, in 1.6 when a merge target is a missing
> subtree due to its removal by non-svn means, we try to record
> mergeinfo such that the missing subtree doesn't have (or inherit)
> mergeinfo describing the merge:
>
> (If you already have a vague idea of how this works you can skip to
> 'You might suggest that it makes more sense' below for the RFC)
>
> ### A file is missing in our merge target
>
> 1.6.13-dev>svn st
> ! A_COPY\D\H\psi
>
> ### No initial mergeinfo
>
> 1.6.13-dev>svn pg svn:mergeinfo -vR
>
> ### Merge tries to apply change to missing file, but can't
> ### and reports it as skipped
>
> 1.6.13-dev>svn merge ^^/A A_COPY -r2:4
> --- Merging r3 through r4 into 'A_COPY':
> U A_COPY\D\G\rho
> Skipped missing target: 'A_COPY\D\H\psi'
> Summary of conflicts:
> Skipped paths: 1
>
> ### Merge target gets mergeinfo describing the merge
> ### performed and the missing file gets empty "override"
> ### mergeinfo so it doesn't inherit the target's mergeinfo
>
> 1.6.13-dev>svn st
> M A_COPY
> M A_COPY\D\G\rho
> !M A_COPY\D\H\psi
>
> 1.6.13-dev>svn pg svn:mergeinfo -vR
> Properties on 'A_COPY\D\H\psi':
> svn:mergeinfo
>
> Properties on 'A_COPY':
> svn:mergeinfo
> /A:3-4
>
> If the missing subtree was a directory we obviously can't set its
> properties, so we treat this as a tree conflict:
>

When I read your "if you already know how it works", I expected that here
we'd set non-inheritable mergeinfo on the parent of the missing dir (and
then set normal mergeinfo on that dir's siblings).

Perhaps there's a very good reason we don't do that --- I'm completely
unacquainted with these mergeinfo subtleties --- but I'm just repeating what
my intuition said...

> 1.6.13-dev>svn st
> ! A_COPY\D\H
>
> 1.6.13-dev>svn merge ^^/A A_COPY -r2:4
> --- Merging r3 through r4 into 'A_COPY':
> U A_COPY\D\G\rho
> C A_COPY\D\H
> Summary of conflicts:
> Tree conflicts: 1
>
> 1.6.13-dev>svn st
> M A_COPY
> M A_COPY\D\G\rho
> ! C A_COPY\D\H
> > local delete, incoming edit upon merge
>
> ~~~~~
Received on 2010-08-07 12:54:07 CEST

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