[PATCH] copytrace: use ctx.mutable() instead of adhoc constant of non-public phases

Augie Fackler raf at durin42.com
Sat Sep 30 09:51:52 EDT 2017


> On Sep 28, 2017, at 07:56, Pulkit Goyal <7895pulkit at gmail.com> wrote:
> 
> LGTM. Thanks Yuya for cleaning this up.

Queued, thanks


> 
> On Wed, Sep 27, 2017 at 6:03 PM, Yuya Nishihara <yuya at tcha.org> wrote:
>> # HG changeset patch
>> # User Yuya Nishihara <yuya at tcha.org>
>> # Date 1506087902 -32400
>> #      Fri Sep 22 22:45:02 2017 +0900
>> # Node ID bf17b694881c47015c02f006a788b469c399f3eb
>> # Parent  1826d695ad58194cdc90876699ed44cbdf792fda
>> copytrace: use ctx.mutable() instead of adhoc constant of non-public phases
>> 
>> diff --git a/mercurial/copies.py b/mercurial/copies.py
>> --- a/mercurial/copies.py
>> +++ b/mercurial/copies.py
>> @@ -15,7 +15,6 @@ from . import (
>>     match as matchmod,
>>     node,
>>     pathutil,
>> -    phases,
>>     scmutil,
>>     util,
>> )
>> @@ -368,9 +367,9 @@ def mergecopies(repo, c1, c2, base):
>>     if copytracing == 'off':
>>         return {}, {}, {}, {}, {}
>>     elif copytracing == 'heuristics':
>> -        # Do full copytracing if only drafts are involved as that will be fast
>> -        # enough and will also cover the copies which can be missed by
>> -        # heuristics
>> +        # Do full copytracing if only non-public revisions are involved as
>> +        # that will be fast enough and will also cover the copies which could
>> +        # be missed by heuristics
>>         if _isfullcopytraceable(repo, c1, base):
>>             return _fullcopytracing(repo, c1, c2, base)
>>         return _heuristicscopytracing(repo, c1, c2, base)
>> @@ -378,16 +377,13 @@ def mergecopies(repo, c1, c2, base):
>>         return _fullcopytracing(repo, c1, c2, base)
>> 
>> def _isfullcopytraceable(repo, c1, base):
>> -    """ Checks that if base, source and destination are all draft branches, if
>> -    yes let's use the full copytrace algorithm for increased capabilities since
>> -    it will be fast enough.
>> +    """ Checks that if base, source and destination are all no-public branches,
>> +    if yes let's use the full copytrace algorithm for increased capabilities
>> +    since it will be fast enough.
>>     """
>>     if c1.rev() is None:
>>         c1 = c1.p1()
>> -
>> -    nonpublicphases = set([phases.draft, phases.secret])
>> -
>> -    if (c1.phase() in nonpublicphases) and (base.phase() in nonpublicphases):
>> +    if c1.mutable() and base.mutable():
>>         sourcecommitlimit = repo.ui.configint('experimental',
>>                                               'copytrace.sourcecommitlimit')
>>         commits = len(repo.revs('%d::%d', base.rev(), c1.rev()))
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list