Subject: Re: [PATCH] git fast-export: add --no-data option

From: Stephen Boyd <[email-masked]>
Date: Mon, 27 Jul 2009 21:11:44 -0700

Johannes Schindelin wrote:
> There is an ugly solution:
>
> 		{ OPTION_NEGBIT, 0, "no-data", &no_data, NULL, NULL,
> 			PARSE_OPT_NOARG | PARSE_OPT_HIDDEN, NULL, 0 },
> 		{ OPTION_BIT, 0, "no-data", NULL, NULL,
> 			"Skip output of blob data",
> 			PARSE_OPT_NOARG, NULL, 1 },
>
> and there is a more elegant solution:
>
> [PATCH] parse-opt: optionally show "--no-" option string
>
> It is usually better to have positive options, to avoid confusing double
> negations.  However, sometimes it is desirable to show the negative option
> in the help.
>
> Introduce the flag PARSE_OPT_NEGHELP to do that.

Perhaps with this documentation throw in?

diff --git a/parse-options.h b/parse-options.h
index 90e577d..14162e9 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -81,6 +81,9 @@ typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
  *   PARSE_OPT_LITERAL_ARGHELP: says that argh shouldn't be enclosed in brackets
  *                             (i.e. '<argh>') in the help message.
  *                             Useful for options with multiple parameters.
+ *   PARSE_OPT_NEGHELP: says that the long option should always be shown with
+ *                     the --no prefix in the usage message. Sometimes
+ *                     useful for users of OPTION_NEGBIT.
  *
  * `callback`::
  *   pointer to the callback to use for OPTION_CALLBACK.