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
--- a/mercurial/configitems.py Tue Sep 05 12:04:02 2017 -0700
+++ b/mercurial/configitems.py Sun Sep 03 01:52:19 2017 +0530
@@ -172,12 +172,12 @@
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,
)
--- a/mercurial/copies.py Tue Sep 05 12:04:02 2017 -0700
+++ b/mercurial/copies.py Sun Sep 03 01:52:19 2017 +0530
@@ -203,7 +203,7 @@
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 @@
# 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 @@
'''
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).
--- a/tests/test-copy-move-merge.t Tue Sep 05 12:04:02 2017 -0700
+++ b/tests/test-copy-move-merge.t Sun Sep 03 01:52:19 2017 +0530
@@ -81,7 +81,7 @@
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 @@
|
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 @@
|/
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)