# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2017-09-02 20:22:19 # Node ID 26531db4647a295dd54e97c0e606f6a5624042ec # Parent cd38b83bfb2308c25deb48ec5452e0417d52e471 copytrace: replace experimental.disablecopytrace config with copytrace (BC) This patch replaces experimental.disablecopytrace with experimental.copytrace. Since the words does not means the same, the default value is also changed. Now experimental.copytrace defaults to 'on'. The new value is not boolean value as we will be now having two different algorithms (current one and heuristics one to be imported from fbext) so we need this to be have more options than booleans. The old config option is not kept is completely replaced as that was under experimental and we don't gurantee BC to experimental things. .. bc:: The config option for copytrace `experimental.disablecopytrace` is now replaced with `experimental.copytrace` which defaults to `on`. If you need to turn off copytracing, add `[experimental] copytrace = off` to your config. Differential Revision: https://phab.mercurial-scm.org/D621 diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -172,12 +172,12 @@ coreconfigitem('experimental', 'changegr coreconfigitem('experimental', 'clientcompressionengines', default=list, ) +coreconfigitem('experimental', 'copytrace', + default='on', +) coreconfigitem('experimental', 'crecordtest', default=None, ) -coreconfigitem('experimental', 'disablecopytrace', - default=False, -) coreconfigitem('experimental', 'editortmpinhg', default=False, ) diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -203,7 +203,7 @@ def _forwardcopies(a, b, match=None): return cm def _backwardrenames(a, b): - if a._repo.ui.configbool('experimental', 'disablecopytrace'): + if a._repo.ui.config('experimental', 'copytrace') == 'off': return {} # Even though we're not taking copies into account, 1:n rename situations @@ -363,7 +363,7 @@ def mergecopies(repo, c1, c2, base): # Copy trace disabling is explicitly below the node == p1 logic above # because the logic above is required for a simple copy to be kept across a # rebase. - if repo.ui.configbool('experimental', 'disablecopytrace'): + if repo.ui.config('experimental', 'copytrace') == 'off': return {}, {}, {}, {}, {} # In certain scenarios (e.g. graft, update or rebase), base can be @@ -728,8 +728,8 @@ def duplicatecopies(repo, rev, fromrev, ''' exclude = {} if (skiprev is not None and - not repo.ui.configbool('experimental', 'disablecopytrace')): - # disablecopytrace skips this line, but not the entire function because + repo.ui.config('experimental', 'copytrace') != 'off'): + # copytrace='off' skips this line, but not the entire function because # the line below is O(size of the repo) during a rebase, while the rest # of the function is much faster (and is required for carrying copy # metadata across the rebase anyway). diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t --- a/tests/test-copy-move-merge.t +++ b/tests/test-copy-move-merge.t @@ -81,7 +81,7 @@ Test disabling copy tracing 2 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/t/.hg/strip-backup/550bd84c0cd3-fc575957-backup.hg (glob) $ hg up -qC 2 - $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= --config experimental.disablecopytrace=True --config ui.interactive=True << EOF + $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= --config experimental.copytrace=off --config ui.interactive=True << EOF > c > EOF rebasing 2:add3f11052fa "other" (tip) @@ -117,7 +117,7 @@ Verify disabling copy tracing still keep | o 0 add a - $ hg rebase -d . -b 2 --config extensions.rebase= --config experimental.disablecopytrace=True + $ hg rebase -d . -b 2 --config extensions.rebase= --config experimental.copytrace=off rebasing 2:6adcf8c12e7d "copy b->x" saved backup bundle to $TESTTMP/copydisable/.hg/strip-backup/6adcf8c12e7d-ce4b3e75-rebase.hg (glob) $ hg up -q 3 @@ -150,7 +150,7 @@ Verify we duplicate existing copies, ins |/ o 0 add a - $ hg rebase -d 2 -s 3 --config extensions.rebase= --config experimental.disablecopytrace=True + $ hg rebase -d 2 -s 3 --config extensions.rebase= --config experimental.copytrace=off rebasing 3:47e1a9e6273b "copy a->b (2)" (tip) saved backup bundle to $TESTTMP/copydisable3/.hg/strip-backup/47e1a9e6273b-2d099c59-rebase.hg (glob)