mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
copytrace: use ctx.mutable() instead of adhoc constant of non-public phases
This commit is contained in:
parent
76b0c9eaa7
commit
183298cb9f
@ -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()))
|
||||
|
Loading…
Reference in New Issue
Block a user