From patchwork Fri Sep 25 09:16:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 9, V2] configitems: add a new config option to control new filenode functionality From: Pulkit Goyal <7895pulkit@gmail.com> X-Patchwork-Id: 47279 Message-Id: <2459a55b887107613818.1601025410@workspace> To: mercurial-devel@mercurial-scm.org Date: Fri, 25 Sep 2020 14:46:50 +0530 # HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1600074083 -19800 # Mon Sep 14 14:31:23 2020 +0530 # Node ID 2459a55b887107613818e0d968ef80748dafaadb # Parent abad925af2ef488ecbe43d2d1e2d341ddcf2096a # EXP-Topic merge-newnode 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 diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -590,6 +590,11 @@ coreconfigitem( 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, ) diff --git a/tests/test-merge-criss-cross.t b/tests/test-merge-criss-cross.t --- a/tests/test-merge-criss-cross.t +++ b/tests/test-merge-criss-cross.t @@ -1,3 +1,15 @@ +#testcases old newfilenode + +#if newfilenode +Enable the config option +------------------------ + + $ cat >> $HGRCPATH < [experimental] + > merge-track-salvaged = True + > EOF +#endif + Criss cross merging $ hg init criss-cross