threads / patch / 60439

patcham, rebase: fix arghelp syntax of --empty

Subject: [PATCH] am, rebase: fix arghelp syntax of --empty

## tl;dr

2 messages between Oct 28, 2023 and Oct 29, 2023. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

René Scharfe· Oct 28, 2023, 11:58 UTC · lore

Use parentheses and pipes to present alternatives in the argument help for the --empty options of git am and git rebase, like in the rest of the documentation.

While at it remove a stray use of the enum empty_action value STOP_ON_EMPTY_COMMIT to indicate that no short option is present. While it has a value of 0 and thus there is no user-visible change, that enum is not meant to hold short option characters. Hard-code 0, like we do for other options without a short option.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 Documentation/git-rebase.txt | 4 ++--
 builtin/am.c                 | 2 +-
 builtin/rebase.c             | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)
Show changes to 3 files +4 −4

Documentation/git-rebase.txt, builtin/am.c, builtin/rebase.c

diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index e7b39ad244..b4526ca246 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -289,7 +289,7 @@ See also INCOMPATIBLE OPTIONS below.
 +
 See also INCOMPATIBLE OPTIONS below.

---empty={drop,keep,ask}::
+--empty=(drop|keep|ask)::
 	How to handle commits that are not empty to start and are not
 	clean cherry-picks of any upstream commit, but which become
 	empty after rebasing (because they contain a subset of already
@@ -695,7 +695,7 @@ be dropped automatically with `--no-keep-empty`).
 Similar to the apply backend, by default the merge backend drops
 commits that become empty unless `-i`/`--interactive` is specified (in
 which case it stops and asks the user what to do).  The merge backend
-also has an `--empty={drop,keep,ask}` option for changing the behavior
+also has an `--empty=(drop|keep|ask)` option for changing the behavior
 of handling commits that become empty.

 Directory rename detection
diff --git a/builtin/am.c b/builtin/am.c
index 6655059a57..9bb73d1671 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -2420,7 +2420,7 @@ int cmd_am(int argc, const char **argv, const char *prefix)
 		{ OPTION_STRING, 'S', "gpg-sign", &state.sign_commit, N_("key-id"),
 		  N_("GPG-sign commits"),
 		  PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
-		OPT_CALLBACK_F(STOP_ON_EMPTY_COMMIT, "empty", &state.empty_type, "{stop,drop,keep}",
+		OPT_CALLBACK_F(0, "empty", &state.empty_type, "(stop|drop|keep)",
 		  N_("how to handle empty patches"),
 		  PARSE_OPT_NONEG, am_option_parse_empty),
 		OPT_HIDDEN_BOOL(0, "rebasing", &state.rebasing,
diff --git a/builtin/rebase.c b/builtin/rebase.c
index f990811614..ad7baedd4a 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -1147,7 +1147,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 				 "instead of ignoring them"),
 			      1, PARSE_OPT_HIDDEN),
 		OPT_RERERE_AUTOUPDATE(&options.allow_rerere_autoupdate),
-		OPT_CALLBACK_F(0, "empty", &options, "{drop,keep,ask}",
+		OPT_CALLBACK_F(0, "empty", &options, "(drop|keep|ask)",
 			       N_("how to handle commits that become empty"),
 			       PARSE_OPT_NONEG, parse_opt_empty),
 		OPT_CALLBACK_F('k', "keep-empty", &options, NULL,
--
2.42.0
Elijah Newren· Oct 29, 2023, 06:24 UTC · re: René Scharfe · lore

Re: [PATCH] am, rebase: fix arghelp syntax of --empty

On Sat, Oct 28, 2023 at 4:58 AM René Scharfe <l.s.r@web.de> wrote:
Show 68 quoted lines
>
> Use parentheses and pipes to present alternatives in the argument help
> for the --empty options of git am and git rebase, like in the rest of
> the documentation.
>
> While at it remove a stray use of the enum empty_action value
> STOP_ON_EMPTY_COMMIT to indicate that no short option is present.
> While it has a value of 0 and thus there is no user-visible change,
> that enum is not meant to hold short option characters.  Hard-code 0,
> like we do for other options without a short option.
>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
>  Documentation/git-rebase.txt | 4 ++--
>  builtin/am.c                 | 2 +-
>  builtin/rebase.c             | 2 +-
>  3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
> index e7b39ad244..b4526ca246 100644
> --- a/Documentation/git-rebase.txt
> +++ b/Documentation/git-rebase.txt
> @@ -289,7 +289,7 @@ See also INCOMPATIBLE OPTIONS below.
>  +
>  See also INCOMPATIBLE OPTIONS below.
>
> ---empty={drop,keep,ask}::
> +--empty=(drop|keep|ask)::
>         How to handle commits that are not empty to start and are not
>         clean cherry-picks of any upstream commit, but which become
>         empty after rebasing (because they contain a subset of already
> @@ -695,7 +695,7 @@ be dropped automatically with `--no-keep-empty`).
>  Similar to the apply backend, by default the merge backend drops
>  commits that become empty unless `-i`/`--interactive` is specified (in
>  which case it stops and asks the user what to do).  The merge backend
> -also has an `--empty={drop,keep,ask}` option for changing the behavior
> +also has an `--empty=(drop|keep|ask)` option for changing the behavior
>  of handling commits that become empty.
>
>  Directory rename detection
> diff --git a/builtin/am.c b/builtin/am.c
> index 6655059a57..9bb73d1671 100644
> --- a/builtin/am.c
> +++ b/builtin/am.c
> @@ -2420,7 +2420,7 @@ int cmd_am(int argc, const char **argv, const char *prefix)
>                 { OPTION_STRING, 'S', "gpg-sign", &state.sign_commit, N_("key-id"),
>                   N_("GPG-sign commits"),
>                   PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
> -               OPT_CALLBACK_F(STOP_ON_EMPTY_COMMIT, "empty", &state.empty_type, "{stop,drop,keep}",
> +               OPT_CALLBACK_F(0, "empty", &state.empty_type, "(stop|drop|keep)",
>                   N_("how to handle empty patches"),
>                   PARSE_OPT_NONEG, am_option_parse_empty),
>                 OPT_HIDDEN_BOOL(0, "rebasing", &state.rebasing,
> diff --git a/builtin/rebase.c b/builtin/rebase.c
> index f990811614..ad7baedd4a 100644
> --- a/builtin/rebase.c
> +++ b/builtin/rebase.c
> @@ -1147,7 +1147,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
>                                  "instead of ignoring them"),
>                               1, PARSE_OPT_HIDDEN),
>                 OPT_RERERE_AUTOUPDATE(&options.allow_rerere_autoupdate),
> -               OPT_CALLBACK_F(0, "empty", &options, "{drop,keep,ask}",
> +               OPT_CALLBACK_F(0, "empty", &options, "(drop|keep|ask)",
>                                N_("how to handle commits that become empty"),
>                                PARSE_OPT_NONEG, parse_opt_empty),
>                 OPT_CALLBACK_F('k', "keep-empty", &options, NULL,
> --
> 2.42.0
Looks good to me; thanks.

← back to recent threads