Patchwork [STABLE] merge: undocument checkunknown and checkignored configs for 3.7

login
register
mail settings
Submitter Siddharth Agarwal
Date Jan. 27, 2016, 8:37 p.m.
Message ID <c55383ca8d2787f11223.1453927078@dev666.prn1.facebook.com>
Download mbox | patch
Permalink /patch/12896/
State Accepted
Headers show

Comments

Siddharth Agarwal - Jan. 27, 2016, 8:37 p.m.
# HG changeset patch
# User Siddharth Agarwal <sid0@fb.com>
# Date 1453926787 28800
#      Wed Jan 27 12:33:07 2016 -0800
# Branch stable
# Node ID c55383ca8d2787f1122399bbc05a616dbf064438
# Parent  4511e8dac4c798e5fed91e629aa9802b01c2b6c3
# Available At http://42.netv6.net/sid0-wip/hg/
#              hg pull http://42.netv6.net/sid0-wip/hg/ -r c55383ca8d27
merge: undocument checkunknown and checkignored configs for 3.7

We've discovered an issue with this flag during certain kinds of rebases. When:

(1) we're rebasing while currently on the destination commit, and
(2) an untracked or ignored file F is currently in the working copy, and
(3) the same file F is in a source commit, and
(4) F has different contents in the source commit,

then we'll try to merge the file rather than overwrite it.

An earlier patch I sent honored the options for these situations as well.
Unfortunately, rebases go through the same flow as the old, deprecated 'hg
merge --force'. We'd rather not make any changes to 'hg merge --force'
behavior, and there's no way from this point in the code to figure out whether
we're in 'hg rebase' or 'hg merge --force'.

Pierre-Yves David and I came up with the idea to split the 'force' flag up into
'force' for rebases, and 'forcemerge' for merge. Since this is a very
disruptive change and we're in freeze mode, simply undocument the options for
this release so that our hands aren't tied by BC concerns. We'll redocument
them in the next release.
Matt Mackall - Jan. 29, 2016, 9:29 p.m.
On Wed, 2016-01-27 at 12:37 -0800, Siddharth Agarwal wrote:
> # HG changeset patch
> # User Siddharth Agarwal <sid0@fb.com>
> # Date 1453926787 28800
> #      Wed Jan 27 12:33:07 2016 -0800
> # Branch stable
> # Node ID c55383ca8d2787f1122399bbc05a616dbf064438
> # Parent  4511e8dac4c798e5fed91e629aa9802b01c2b6c3
> # Available At http://42.netv6.net/sid0-wip/hg/
> #              hg pull http://42.netv6.net/sid0-wip/hg/ -r c55383ca8d27
> merge: undocument checkunknown and checkignored configs for 3.7

Queued for stable, thanks.

-- 
Mathematics is the supreme nostalgia of our time.

Patch

diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
--- a/mercurial/help/config.txt
+++ b/mercurial/help/config.txt
@@ -1006,25 +1006,6 @@  proxy.
     Optional. Always use the proxy, even for localhost and any entries
     in ``http_proxy.no``. (default: False)
 
-``merge``
----------
-
-This section specifies behavior during merges and updates.
-
-``checkignored``
-   Controls behavior when an ignored file on disk has the same name as a tracked
-   file in the changeset being merged or updated to, and has different
-   contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``,
-   abort on such files. With ``warn``, warn on such files and back them up as
-   .orig. With ``ignore``, don't print a warning and back them up as
-   .orig. (default: ``abort``)
-
-``checkunknown``
-   Controls behavior when an unknown file that isn't ignored has the same name
-   as a tracked file in the changeset being merged or updated to, and has
-   different contents. Similar to ``merge.checkignored``, except for files that
-   are not ignored. (default: ``abort``)
-
 ``merge-patterns``
 ------------------