From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 7/8] checkout: wrap overly long lines
Date: Fri, 28 Aug 2026 15:52:05 -0700 [thread overview]
Message-ID: <20260828225206.310500-8-gitster@pobox.com> (raw)
In-Reply-To: <20260828225206.310500-1-gitster@pobox.com>
So far, the patches in this series have tried to leave the original
code intact as much as possible when moving it, to make the
refactoring easier to review.
However, there are quite a few overly long lines that are hard to
read. There are also several manual checks for mutually
incompatible options where die_for_incompatible_optN() could be
used instead.
Now that most of the refactoring is complete, tidy up these warts to
finish off the series.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin/checkout.c | 54 +++++++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 20 deletions(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index b18515ac7f..f13d70b224 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1864,15 +1864,18 @@ static void validate_path_options(struct checkout_opts *opts)
if (!opts->patch_mode) {
if (opts->patch_context != -1)
- die(_("the option '%s' requires '%s'"), "--unified", "--patch");
+ die(_("the option '%s' requires '%s'"),
+ "--unified", "--patch");
if (opts->patch_interhunk_context != -1)
- die(_("the option '%s' requires '%s'"), "--inter-hunk-context", "--patch");
+ die(_("the option '%s' requires '%s'"),
+ "--inter-hunk-context", "--patch");
if (!opts->auto_advance)
- die(_("the option '%s' requires '%s'"), "--no-auto-advance", "--patch");
+ die(_("the option '%s' requires '%s'"),
+ "--no-auto-advance", "--patch");
}
- if (opts->overlay_mode == 1 && opts->patch_mode)
- die(_("options '%s' and '%s' cannot be used together"), "-p", "--overlay");
+ die_for_incompatible_opt2(opts->overlay_mode == 1, "--overlay",
+ opts->patch_mode, "-p");
if (opts->checkout_index >= 0 || opts->checkout_worktree >= 0) {
if (opts->checkout_index < 0)
@@ -1914,19 +1917,20 @@ static void parse_pathspec_from_file_options(struct checkout_opts *opts,
{
if (opts->pathspec_from_file) {
if (opts->pathspec.nr)
- die(_("'%s' and pathspec arguments cannot be used together"), "--pathspec-from-file");
+ die(_("'%s' and pathspec arguments cannot be used together"),
+ "--pathspec-from-file");
- if (opts->force_detach)
- die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--detach");
+ die_for_incompatible_opt2(opts->force_detach, "--detach",
+ 1, "--pathspec-from-file");
- if (opts->patch_mode)
- die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--patch");
-
- parse_pathspec_file(&opts->pathspec, 0,
- 0,
- prefix, opts->pathspec_from_file, opts->pathspec_file_nul);
+ die_for_incompatible_opt2(opts->patch_mode, "--patch",
+ 1, "--pathspec-from-file");
+ parse_pathspec_file(&opts->pathspec, 0, 0,
+ prefix, opts->pathspec_from_file,
+ opts->pathspec_file_nul);
} else if (opts->pathspec_file_nul) {
- die(_("the option '%s' requires '%s'"), "--pathspec-file-nul", "--pathspec-from-file");
+ die(_("the option '%s' requires '%s'"),
+ "--pathspec-file-nul", "--pathspec-from-file");
}
opts->pathspec.recursive = 1;
@@ -1934,9 +1938,17 @@ static void parse_pathspec_from_file_options(struct checkout_opts *opts,
static void validate_branch_options(struct checkout_opts *opts, char cb_option)
{
- if ((!!opts->new_branch + !!opts->new_branch_force + !!opts->new_orphan_branch) > 1)
- die(_("options '-%c', '-%c', and '%s' cannot be used together"),
- cb_option, toupper(cb_option), "--orphan");
+ char new_branch_opt[] = "-c";
+ char new_branch_force_opt[] = "-C";
+
+ new_branch_opt[1] = cb_option;
+ new_branch_force_opt[1] = toupper(cb_option);
+
+ die_for_incompatible_opt3(opts->new_branch,
+ new_branch_opt,
+ opts->new_new_branch_force,
+ new_branch_force_opt,
+ opts->new_orphan_branch, "--orphan");
if (opts->new_branch_force)
opts->new_branch = opts->new_branch_force;
@@ -2147,10 +2159,12 @@ int cmd_checkout(int argc,
N_("create and checkout a new branch")),
OPT_STRING('B', NULL, &opts.new_branch_force, N_("branch"),
N_("create/reset and checkout a branch")),
- OPT_BOOL('l', NULL, &opts.new_branch_log, N_("create reflog for new branch")),
+ OPT_BOOL('l', NULL, &opts.new_branch_log,
+ N_("create reflog for new branch")),
OPT_BOOL(0, "guess", &opts.dwim_new_local_branch,
N_("second guess 'git checkout <no-such-branch>' (default)")),
- OPT_BOOL(0, "overlay", &opts.overlay_mode, N_("use overlay mode (default)")),
+ OPT_BOOL(0, "overlay", &opts.overlay_mode,
+ N_("use overlay mode (default)")),
OPT_BOOL(0, "auto-advance", &opts.auto_advance,
N_("auto advance to the next file when selecting hunks interactively")),
OPT_END()
--
2.55.0-884-g76cf8659c2
next prev parent reply other threads:[~2026-08-28 22:52 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 18:29 [PATCH] builtin: replace the_repository parameter in is_bare_repository() Hardik Kumar
2026-08-27 19:09 ` Junio C Hamano
2026-08-27 19:51 ` Junio C Hamano
2026-08-27 20:09 ` Hardik Kumar
2026-08-27 20:28 ` Junio C Hamano
2026-08-27 21:12 ` Ben Knoble
2026-08-27 21:39 ` Junio C Hamano
2026-08-28 11:41 ` D. Ben Knoble
2026-08-28 22:51 ` Junio C Hamano
2026-08-28 22:51 ` [PATCH 0/8] More sensible checkout/switch/restore code refactoring Junio C Hamano
2026-08-28 22:51 ` [PATCH 1/8] checkout: pass cb_option explicitly to branch name parsers Junio C Hamano
2026-08-28 22:52 ` [PATCH 2/8] checkout: validate new branch name in checkout_branch() Junio C Hamano
2026-08-28 22:52 ` [PATCH 3/8] checkout: validate stage and merge option compatibility in checkout_paths() Junio C Hamano
2026-08-28 22:52 ` [PATCH 4/8] checkout: extract option validation and pathspec helpers Junio C Hamano
2026-08-28 22:52 ` [PATCH 5/8] checkout: extract branch setup and tracking helpers Junio C Hamano
2026-08-28 22:52 ` [PATCH 6/8] checkout: restructure switch, restore, and checkout entrypoints Junio C Hamano
2026-08-28 22:52 ` Junio C Hamano [this message]
2026-08-28 22:55 ` [PATCH 7/8] checkout: wrap overly long lines Junio C Hamano
2026-08-29 2:06 ` Junio C Hamano
2026-08-28 22:52 ` [PATCH 8/8] checkout: move post_checkout_hook() to checkout.c Junio C Hamano
2026-08-28 22:57 ` Junio C Hamano
2026-08-29 2:05 ` Junio C Hamano
2026-08-29 13:24 ` [PATCH] builtin: replace the_repository parameter in is_bare_repository() D. Ben Knoble
2026-08-27 21:35 ` [PATCH] do not pass "repo" to builtin commmand implementations Junio C Hamano
2026-08-28 9:05 ` Hardik Kumar
2026-08-28 20:59 ` Junio C Hamano
2026-08-28 4:01 ` [PATCH] builtin: replace the_repository parameter in is_bare_repository() Hardik Kumar
2026-08-27 19:56 ` Hardik Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260828225206.310500-8-gitster@pobox.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.