diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -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-undeleted', 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 @@ -486,6 +486,14 @@ explicit choices made by users to revert the removal and on criss-cross merging removes the file again. +Enable the config option +------------------------ + + $ cat >> $HGRCPATH < [experimental] + > merge-track-undeleted = True + > EOF + "Simple" case where the filenode changes ----------------------------------------