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
> 
> ~~~~~

Reply via email to