You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Stefan Fuhrmann <st...@wandisco.com> on 2015/08/17 01:35:34 UTC

Re: svn-mergeinfo-normalizer ideas

On Fri, Jul 10, 2015 at 12:40 AM, Stefan Fuhrmann <
stefan.fuhrmann@wandisco.com> wrote:

> On Thu, Jun 25, 2015 at 5:10 PM, Stefan Hett <st...@egosoft.com> wrote:
>
>> Hi,
>>
>> I'm dealing with one remaining case svn-mergeinfo-normalizer normalize
>> doesn't seem to be able to handle yet. Would it be possible to add support
>> for this?
>>
>> Case: Eliminate incorrect mergeinfos of pre-branch-revisions.
>>
>> Looking at the following output:
>> Trying to elide mergeinfo from path
>>     E:/[projects]/XR/clean_source_branch/src/SDKs/bullet
>>     into mergeinfo at path
>>     E:/[projects]/XR/clean_source_branch/src
>>
>>     All branches still exist in HEAD.
>>
>>     Try to elide remaining branches:
>>     CANNOT elide branch /XRebirth/trunk/src/SDKs/bullet
>>         revisions not movable to parent: 173817,174057,180942,181150
>>
>>     Branches not mentioned in parent:
>>     /SDKs/BulletPhysics/tags/2.82
>>     /SDKs/BulletPhysics/trunk
>>
>>     Sub-tree merge info cannot be elided due to the following branches:
>>     /SDKs/BulletPhysics/tags/2.82
>>     /SDKs/BulletPhysics/trunk
>>     /XRebirth/trunk/src/SDKs/bullet
>>
>> here you see that the revisions 173817,174057,180942,181150 are reported
>> to not be movable to the parent.
>>
>> The thing here is that all of these revisions are effectively referencing
>> themselves and therefore should be removable in principle.
>>
>> The WC is a check-out of
>> repo
>>     \proj1
>>         \branches
>>             \proj1v1
>>
>> The proj1v1 branch was created in revision 184223 from trunk - aka from:
>> repo
>>     \proj1
>>         \trunk
>>
>> so all the revisions (173817,174057,180942,181150) are referring to the
>> same thing which is implicitly included in the branch (due to its creation
>> from trunk at r184223). So these should simply be eliminated, no?
>>
>
> Yes, for all paths, their natural history can be considered being an
> implicit
> part of their merge history, i.e. "they contain all their own changes".
> Hence,
> they can't be actually missing and the branch entry in your example should
> be removed from the mergeinfo.
>
> To do this efficiently requires a fair amount coding, though. I'll give it
> a try.
>

The tool is on /trunk now and will detect overlapping "natural path
history".

-- Stefan^2.

Re: svn-mergeinfo-normalizer ideas

Posted by Stefan Hett <st...@egosoft.com>.
Hi,
> On Fri, Jul 10, 2015 at 12:40 AM, Stefan Fuhrmann 
> <stefan.fuhrmann@wandisco.com <ma...@wandisco.com>> 
> wrote:
>
>     On Thu, Jun 25, 2015 at 5:10 PM, Stefan Hett <stefan@egosoft.com
>     <ma...@egosoft.com>> wrote:
>
>         Hi,
>
>         I'm dealing with one remaining case svn-mergeinfo-normalizer
>         normalize doesn't seem to be able to handle yet. Would it be
>         possible to add support for this?
>
>         Case: Eliminate incorrect mergeinfos of pre-branch-revisions.
>
>         Looking at the following output:
>         Trying to elide mergeinfo from path
>         E:/[projects]/XR/clean_source_branch/src/SDKs/bullet
>             into mergeinfo at path
>             E:/[projects]/XR/clean_source_branch/src
>
>             All branches still exist in HEAD.
>
>             Try to elide remaining branches:
>             CANNOT elide branch /XRebirth/trunk/src/SDKs/bullet
>                 revisions not movable to parent:
>         173817,174057,180942,181150
>
>             Branches not mentioned in parent:
>             /SDKs/BulletPhysics/tags/2.82
>             /SDKs/BulletPhysics/trunk
>
>             Sub-tree merge info cannot be elided due to the following
>         branches:
>             /SDKs/BulletPhysics/tags/2.82
>             /SDKs/BulletPhysics/trunk
>             /XRebirth/trunk/src/SDKs/bullet
>
>         here you see that the revisions 173817,174057,180942,181150
>         are reported to not be movable to the parent.
>
>         The thing here is that all of these revisions are effectively
>         referencing themselves and therefore should be removable in
>         principle.
>
>         The WC is a check-out of
>         repo
>             \proj1
>                 \branches
>                     \proj1v1
>
>         The proj1v1 branch was created in revision 184223 from trunk -
>         aka from:
>         repo
>             \proj1
>                 \trunk
>
>         so all the revisions (173817,174057,180942,181150) are
>         referring to the same thing which is implicitly included in
>         the branch (due to its creation from trunk at r184223). So
>         these should simply be eliminated, no?
>
>
>     Yes, for all paths, their natural history can be considered being
>     an implicit
>     part of their merge history, i.e. "they contain all their own
>     changes". Hence,
>     they can't be actually missing and the branch entry in your
>     example should
>     be removed from the mergeinfo.
>
>     To do this efficiently requires a fair amount coding, though. I'll
>     give it a try.
>
>
> The tool is on /trunk now and will detect overlapping "natural path 
> history".
>
> -- Stefan^2.
>
Thanks so much. Just tested it and it works like a charm.

-- 
Regards,
Stefan Hett