]> git.ipfire.org Git - thirdparty/git.git/commitdiff
completion: suppress some -no- options
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sun, 27 May 2018 08:38:27 +0000 (10:38 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 29 May 2018 04:28:47 +0000 (13:28 +0900)
Most --no- options do have some use, even if rarely to negate some
option that's specified in an alias.

These options --no-ours and --no-theirs however have no clear
semantics. If I specify "--ours --no-theirs", the second will reset
writeout stage and is equivalent of "--no-ours --no-theirs" which is
not that easy to see. Drop them. You can either switch from --ours to
--theirs and back but you can never negate them.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c
t/t9902-completion.sh

index 2b3b768effd75e5d12d2c1828eb080f15c91895f..c7670dbbfec9172496f8ed73d73412bed326b4b6 100644 (file)
@@ -1119,10 +1119,12 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
                OPT_SET_INT('t', "track",  &opts.track, N_("set upstream info for new branch"),
                        BRANCH_TRACK_EXPLICIT),
                OPT_STRING(0, "orphan", &opts.new_orphan_branch, N_("new-branch"), N_("new unparented branch")),
-               OPT_SET_INT('2', "ours", &opts.writeout_stage, N_("checkout our version for unmerged files"),
-                           2),
-               OPT_SET_INT('3', "theirs", &opts.writeout_stage, N_("checkout their version for unmerged files"),
-                           3),
+               OPT_SET_INT_F('2', "ours", &opts.writeout_stage,
+                             N_("checkout our version for unmerged files"),
+                             2, PARSE_OPT_NONEG),
+               OPT_SET_INT_F('3', "theirs", &opts.writeout_stage,
+                             N_("checkout their version for unmerged files"),
+                             3, PARSE_OPT_NONEG),
                OPT__FORCE(&opts.force, N_("force checkout (throw away local modifications)"),
                           PARSE_OPT_NOCOMPLETE),
                OPT_BOOL('m', "merge", &opts.merge, N_("perform a 3-way merge with the new branch")),
index 07c3e3b760f4355593d206c461c627a6f7e11011..7e5e3ad5b11444072e92ede1558109dfdcfc588b 100755 (executable)
@@ -1245,9 +1245,7 @@ test_expect_success 'double dash "git checkout"' '
        --orphan=Z
        --no-orphan Z
        --ours Z
-       --no-ours Z
        --theirs Z
-       --no-theirs Z
        --merge Z
        --no-merge Z
        --conflict=Z