Now that options whose definition starts with "no-" can be negated by removing said "no-", there is no need anymore to allow them to be negated by adding a second "no-", which just looks silly. The following thirteen options are affected: apply --no-add bisect--helper --no-checkout checkout-index --no-create clone --no-checkout --no-hardlinks commit --no-verify --no-post-rewrite format-patch --no-binary hash-object --no-filters read-tree --no-sparse-checkout revert --no-commit show-branch --no-name update-ref --no-deref E.g., with this patch --no-add and --add (its reverse) are still accepted by git apply, but --no-no-add isn't anymore. Suggested-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Rene Scharfe <rene.scharfe@xxxxxxxxxxxxxx> --- parse-options.c | 3 +++ t/t0040-parse-options.sh | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/parse-options.c b/parse-options.c index 1908996..dc59bba 100644 --- a/parse-options.c +++ b/parse-options.c @@ -248,6 +248,9 @@ is_abbreviated: } continue; } + /* double negation? */ + if (!prefixcmp(long_name, "no-")) + continue; flags |= OPT_UNSET; rest = skip_prefix(arg + 3, long_name); /* abbreviated and negated? */ diff --git a/t/t0040-parse-options.sh b/t/t0040-parse-options.sh index a44bcb9..b124f3c 100755 --- a/t/t0040-parse-options.sh +++ b/t/t0040-parse-options.sh @@ -101,11 +101,11 @@ test_expect_success 'OPT_BOOL() #5' 'check boolean: 1 -B' test_expect_success 'OPT_BOOL() is idempotent #1' 'check boolean: 1 --yes --yes' test_expect_success 'OPT_BOOL() is idempotent #2' 'check boolean: 1 -DB' -test_expect_success 'OPT_BOOL() negation #1' 'check boolean: 0 -D --no-yes' -test_expect_success 'OPT_BOOL() negation #2' 'check boolean: 0 -D --no-no-doubt' +test_expect_success 'OPT_BOOL() negation' 'check boolean: 0 -D --no-yes' test_expect_success 'OPT_BOOL() no negation #1' 'check_unknown --fear' test_expect_success 'OPT_BOOL() no negation #2' 'check_unknown --no-no-fear' +test_expect_success 'OPT_BOOL() no negation #3' 'check_unknown --no-no-doubt' test_expect_success 'OPT_BOOL() positivation' 'check boolean: 0 -D --doubt' -- 1.7.9.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html