configitems: add a new config option to control new filenode functionality
This series is adding functionality where we can force create a new filenode for
some files on a merge-commit. This is meant to represent an explicit choice made
by user and hence distingusing the file in the merged commit with the file in
parent by creating a new filenode instead of using the parent one.
This introduces a experimental config option under which this functionality
will be hidden.
A new testcase is added in tests/test-merge-criss-cross.t to test the new
functionality while making the option does not break other scenarios.
Differential Revision: https://phab.mercurial-scm.org/D9026
--- a/mercurial/configitems.py Wed Sep 23 14:20:49 2020 -0400
+++ b/mercurial/configitems.py Mon Sep 14 14:31:23 2020 +0530
@@ -590,6 +590,11 @@
coreconfigitem(
b'experimental', b'maxdeltachainspan', default=-1,
)
+# tracks files which were undeleted (merge might delete them but we explicitly
+# kept/undeleted them) and creates new filenodes for them
+coreconfigitem(
+ b'experimental', b'merge-track-salvaged', default=False,
+)
coreconfigitem(
b'experimental', b'mergetempdirprefix', default=None,
)
--- a/tests/test-merge-criss-cross.t Wed Sep 23 14:20:49 2020 -0400
+++ b/tests/test-merge-criss-cross.t Mon Sep 14 14:31:23 2020 +0530
@@ -1,3 +1,15 @@
+#testcases old newfilenode
+
+#if newfilenode
+Enable the config option
+------------------------
+
+ $ cat >> $HGRCPATH <<EOF
+ > [experimental]
+ > merge-track-salvaged = True
+ > EOF
+#endif
+
Criss cross merging
$ hg init criss-cross