git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / Atom feed
From: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
To: pclouds@gmail.com
Cc: git@vger.kernel.org, gitster@pobox.com, sunshine@sunshineco.com,
	szeder.dev@gmail.com, Elijah Newren <newren@gmail.com>,
	eckhard.s.maass@googlemail.com,
	Martin Ågren <martin.agren@gmail.com>,
	jacob.keller@gmail.com, phillip.wood123@gmail.com,
	rybak.a.v@gmail.com
Subject: [PATCH v4 11/26] checkout: split options[] array in three pieces
Date: Sun, 17 Mar 2019 19:49:11 +0700
Message-ID: <20190317124926.17137-12-pclouds@gmail.com> (raw)
In-Reply-To: <20190317124926.17137-1-pclouds@gmail.com>

This is a preparation step for introducing new commands that do parts
of what checkout does. There will be two new commands, one is about
switching branches, detaching HEAD... one about checking out
paths. These share the a subset of command line options. The rest of
command line options are separate.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/checkout.c | 82 +++++++++++++++++++++++++++++++++-------------
 parse-options-cb.c | 17 ++++++++++
 parse-options.h    |  1 +
 3 files changed, 77 insertions(+), 23 deletions(-)

diff --git a/builtin/checkout.c b/builtin/checkout.c
index b6fc1fc69f..cf1d70511e 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1342,15 +1342,31 @@ static int checkout_branch(struct checkout_opts *opts,
 	return switch_branches(opts, new_branch_info);
 }
 
-int cmd_checkout(int argc, const char **argv, const char *prefix)
+static struct option *add_common_options(struct checkout_opts *opts,
+					 struct option *prevopts)
 {
-	struct checkout_opts real_opts;
-	struct checkout_opts *opts = &real_opts;
-	struct branch_info new_branch_info;
-	int dwim_new_local_branch;
-	int dwim_remotes_matched = 0;
 	struct option options[] = {
 		OPT__QUIET(&opts->quiet, N_("suppress progress reporting")),
+		{ OPTION_CALLBACK, 0, "recurse-submodules", NULL,
+			    "checkout", "control recursive updating of submodules",
+			    PARSE_OPT_OPTARG, option_parse_recurse_submodules_worktree_updater },
+		OPT_BOOL(0, "progress", &opts->show_progress, N_("force progress reporting")),
+		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")),
+		OPT_STRING(0, "conflict", &opts->conflict_style, N_("style"),
+			   N_("conflict style (merge or diff3)")),
+		OPT_END()
+	};
+	struct option *newopts = parse_options_concat(prevopts, options);
+	free(prevopts);
+	return newopts;
+}
+
+static struct option *add_switch_branch_options(struct checkout_opts *opts,
+						struct option *prevopts)
+{
+	struct option options[] = {
 		OPT_STRING('b', NULL, &opts->new_branch, N_("branch"),
 			   N_("create and checkout a new branch")),
 		OPT_STRING('B', NULL, &opts->new_branch_force, N_("branch"),
@@ -1360,34 +1376,49 @@ 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_BOOL_F(0, "overwrite-ignore", &opts->overwrite_ignore,
+			   N_("update ignored files (default)"),
+			   PARSE_OPT_NOCOMPLETE),
+		OPT_BOOL(0, "no-guess", &opts->no_dwim_new_local_branch,
+			 N_("second guess 'git checkout <no-such-branch>'")),
+		OPT_BOOL(0, "ignore-other-worktrees", &opts->ignore_other_worktrees,
+			 N_("do not check if another worktree is holding the given ref")),
+		OPT_END()
+	};
+	struct option *newopts = parse_options_concat(prevopts, options);
+	free(prevopts);
+	return newopts;
+}
+
+static struct option *add_checkout_path_options(struct checkout_opts *opts,
+						struct option *prevopts)
+{
+	struct option options[] = {
 		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")),
-		OPT_BOOL_F(0, "overwrite-ignore", &opts->overwrite_ignore,
-			   N_("update ignored files (default)"),
-			   PARSE_OPT_NOCOMPLETE),
-		OPT_STRING(0, "conflict", &opts->conflict_style, N_("style"),
-			   N_("conflict style (merge or diff3)")),
 		OPT_BOOL('p', "patch", &opts->patch_mode, N_("select hunks interactively")),
 		OPT_BOOL(0, "ignore-skip-worktree-bits", &opts->ignore_skipworktree,
 			 N_("do not limit pathspecs to sparse entries only")),
-		OPT_BOOL(0, "no-guess", &opts->no_dwim_new_local_branch,
-			 N_("do not second guess 'git checkout <no-such-branch>'")),
-		OPT_BOOL(0, "ignore-other-worktrees", &opts->ignore_other_worktrees,
-			 N_("do not check if another worktree is holding the given ref")),
-		{ OPTION_CALLBACK, 0, "recurse-submodules", NULL,
-			    "checkout", "control recursive updating of submodules",
-			    PARSE_OPT_OPTARG, option_parse_recurse_submodules_worktree_updater },
-		OPT_BOOL(0, "progress", &opts->show_progress, N_("force progress reporting")),
 		OPT_BOOL(0, "overlay", &opts->overlay_mode, N_("use overlay mode (default)")),
-		OPT_END(),
+		OPT_END()
 	};
+	struct option *newopts = parse_options_concat(prevopts, options);
+	free(prevopts);
+	return newopts;
+}
+
+int cmd_checkout(int argc, const char **argv, const char *prefix)
+{
+	struct checkout_opts real_opts;
+	struct checkout_opts *opts = &real_opts;
+	struct branch_info new_branch_info;
+	int dwim_remotes_matched = 0;
+	int dwim_new_local_branch;
+	struct option *options = NULL;
 
 	memset(opts, 0, sizeof(*opts));
 	memset(&new_branch_info, 0, sizeof(new_branch_info));
@@ -1401,6 +1432,11 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
 
 	opts->track = BRANCH_TRACK_UNSPECIFIED;
 
+	options = parse_options_dup(options);
+	options = add_common_options(opts, options);
+	options = add_switch_branch_options(opts, options);
+	options = add_checkout_path_options(opts, options);
+
 	argc = parse_options(argc, argv, prefix, options, checkout_usage,
 			     PARSE_OPT_KEEP_DASHDASH);
 
diff --git a/parse-options-cb.c b/parse-options-cb.c
index 2733393546..caaeed896f 100644
--- a/parse-options-cb.c
+++ b/parse-options-cb.c
@@ -122,6 +122,23 @@ int parse_opt_tertiary(const struct option *opt, const char *arg, int unset)
 	return 0;
 }
 
+struct option *parse_options_dup(const struct option *o)
+{
+	struct option *opts;
+	int nr = 0;
+
+	while (o && o->type != OPTION_END) {
+		nr++;
+		o++;
+	}
+
+	ALLOC_ARRAY(opts, nr + 1);
+	memcpy(opts, o - nr, sizeof(*o) * nr);
+	memset(opts + nr, 0, sizeof(*opts));
+	opts[nr].type = OPTION_END;
+	return opts;
+}
+
 struct option *parse_options_concat(struct option *a, struct option *b)
 {
 	struct option *ret;
diff --git a/parse-options.h b/parse-options.h
index 7d83e2971d..9a90c332a5 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -257,6 +257,7 @@ int parse_options_step(struct parse_opt_ctx_t *ctx,
 
 int parse_options_end(struct parse_opt_ctx_t *ctx);
 
+struct option *parse_options_dup(const struct option *a);
 struct option *parse_options_concat(struct option *a, struct option *b);
 
 /*----- some often used options -----*/
-- 
2.21.0.548.gd3c7d92dc2


  parent reply index

Thread overview: 194+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30  9:48 [PATCH 00/19] Add new command "switch" Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 01/19] git-checkout.txt: fix one syntax line Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 02/19] doc: document --overwrite-ignore Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 03/19] t: rename t2014-switch.sh to t2014-checkout-switch.sh Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 04/19] checkout: factor out some code in parse_branchname_arg() Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 05/19] checkout: make "opts" in cmd_checkout() a pointer Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 06/19] checkout: move 'confict_style' and 'dwim_..' to checkout_opts Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 07/19] checkout: split options[] array in three pieces Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 08/19] checkout: split part of it to new command switch Nguyễn Thái Ngọc Duy
2019-01-31  0:50   ` Eric Sunshine
2019-01-31  5:29     ` Duy Nguyen
2019-01-31  6:24       ` Eric Sunshine
2019-01-31  7:20         ` Eric Sunshine
2019-01-31  7:43         ` Duy Nguyen
2019-01-31  7:51           ` Eric Sunshine
2019-01-31  9:21           ` [PATCH] git-commit.txt: better description what it does Nguyễn Thái Ngọc Duy
2019-01-31 10:49             ` Eric Sunshine
2019-01-31 11:04               ` Duy Nguyen
2019-02-01  0:21                 ` Eric Sunshine
2019-02-01 10:09             ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2019-02-04 17:59               ` Junio C Hamano
2019-01-31 13:06       ` [PATCH 08/19] checkout: split part of it to new command switch SZEDER Gábor
2019-01-31 13:09   ` SZEDER Gábor
2019-02-08  8:46     ` Duy Nguyen
2019-01-30  9:48 ` [PATCH 09/19] switch: better names for -b and -B Nguyễn Thái Ngọc Duy
2019-01-31  7:03   ` Eric Sunshine
2019-01-30  9:48 ` [PATCH 10/19] switch: remove -l Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 11/19] switch: stop accepting pathspec Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 12/19] switch: reject "do nothing" case Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 13/19] switch: only allow explicit detached HEAD Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 14/19] switch: add short option for --detach Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 15/19] switch: no implicit dwim, use --guess to dwim Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 16/19] switch: no worktree status unless real branch switch happens Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 17/19] t: add tests for switch Nguyễn Thái Ngọc Duy
2019-01-31  7:18   ` Eric Sunshine
2019-01-30  9:48 ` [PATCH 18/19] completion: support switch Nguyễn Thái Ngọc Duy
2019-01-30  9:48 ` [PATCH 19/19] doc: promote "git switch" Nguyễn Thái Ngọc Duy
2019-01-31  7:39   ` Eric Sunshine
2019-01-31 11:28     ` Duy Nguyen
2019-01-31 13:37 ` [PATCH 00/19] Add new command "switch" SZEDER Gábor
2019-01-31 14:51   ` Duy Nguyen
2019-01-31 18:23     ` Junio C Hamano
2019-02-02 11:06       ` Duy Nguyen
2019-01-31 18:13 ` Junio C Hamano
2019-02-08  9:03 ` [PATCH v2 " Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 01/19] git-checkout.txt: fix one syntax line Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 02/19] doc: document --overwrite-ignore Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 03/19] t: rename t2014-switch.sh to t2014-checkout-switch.sh Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 04/19] checkout: factor out some code in parse_branchname_arg() Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 05/19] checkout: make "opts" in cmd_checkout() a pointer Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 06/19] checkout: move 'confict_style' and 'dwim_..' to checkout_opts Nguyễn Thái Ngọc Duy
2019-02-15 22:38     ` Junio C Hamano
2019-02-08  9:03   ` [PATCH v2 07/19] checkout: split options[] array in three pieces Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 08/19] checkout: split part of it to new command switch Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 09/19] switch: better names for -b and -B Nguyễn Thái Ngọc Duy
2019-02-11  4:02     ` Eric Sunshine
2019-02-08  9:03   ` [PATCH v2 10/19] switch: remove -l Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 11/19] switch: stop accepting pathspec Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 12/19] switch: reject "do nothing" case Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 13/19] switch: only allow explicit detached HEAD Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 14/19] switch: add short option for --detach Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 15/19] switch: no implicit dwim, use --guess to dwim Nguyễn Thái Ngọc Duy
2019-02-10  8:37     ` Eric Sunshine
2019-02-08  9:03   ` [PATCH v2 16/19] switch: no worktree status unless real branch switch happens Nguyễn Thái Ngọc Duy
2019-02-08  9:03   ` [PATCH v2 17/19] t: add tests for switch Nguyễn Thái Ngọc Duy
2019-02-08  9:04   ` [PATCH v2 18/19] completion: support switch Nguyễn Thái Ngọc Duy
2019-02-08 14:19     ` SZEDER Gábor
2019-02-09  5:30       ` Duy Nguyen
2019-02-08  9:04   ` [PATCH v2 19/19] doc: promote "git switch" Nguyễn Thái Ngọc Duy
2019-03-08  9:57   ` [PATCH v3 00/21] Add new command "switch" Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 01/21] git-checkout.txt: spell out --no-option Nguyễn Thái Ngọc Duy
2019-03-10  3:28       ` Eric Sunshine
2019-03-08  9:57     ` [PATCH v3 02/21] git-checkout.txt: fix one syntax line Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 03/21] doc: document --overwrite-ignore Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 04/21] git-checkout.txt: fix monospace typeset Nguyễn Thái Ngọc Duy
2019-03-09 12:35       ` Martin Ågren
2019-03-11  9:35         ` Duy Nguyen
2019-03-11 10:41           ` Martin Ågren
2019-03-08  9:57     ` [PATCH v3 05/21] t: rename t2014-switch.sh to t2014-checkout-switch.sh Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 06/21] checkout: factor out some code in parse_branchname_arg() Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 07/21] checkout: make "opts" in cmd_checkout() a pointer Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 08/21] checkout: move 'confict_style' and 'dwim_..' to checkout_opts Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 09/21] checkout: split options[] array in three pieces Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 10/21] checkout: split part of it to new command 'switch' Nguyễn Thái Ngọc Duy
2019-03-09 12:36       ` Martin Ågren
2019-03-10 22:57       ` Jacob Keller
2019-03-11 19:00         ` Elijah Newren
2019-03-11 11:16       ` Phillip Wood
2019-03-11 11:47         ` Duy Nguyen
2019-03-11 17:03           ` Phillip Wood
2019-03-12 11:54             ` Duy Nguyen
2019-03-11 17:24           ` Elijah Newren
2019-03-11 20:51             ` Phillip Wood
2019-03-11 22:04               ` Elijah Newren
2019-03-12 10:58                 ` Phillip Wood
2019-03-12 12:19               ` Duy Nguyen
2019-03-12 15:36                 ` Eric Sunshine
2019-03-12 16:51                   ` Elijah Newren
2019-03-12 17:28                     ` Eric Sunshine
2019-03-13  1:55                       ` Junio C Hamano
2019-03-14  9:17                       ` Duy Nguyen
2019-03-14 11:02                         ` Phillip Wood
2019-03-14 12:56                           ` Duy Nguyen
2019-03-14 14:46                         ` Elijah Newren
2019-03-18  2:03                           ` Junio C Hamano
2019-03-18 12:06                             ` Duy Nguyen
2019-03-18 19:10                             ` Elijah Newren
2019-03-15  6:11                     ` Jacob Keller
2019-03-12 11:58             ` Duy Nguyen
2019-03-12 17:05               ` Elijah Newren
2019-03-14 10:42                 ` Phillip Wood
2019-03-14  3:29         ` Duy Nguyen
2019-03-14  5:59           ` Elijah Newren
2019-03-14  7:23             ` Junio C Hamano
2019-03-14 15:48               ` Elijah Newren
2019-03-14  4:39         ` Junio C Hamano
2019-03-14 14:13         ` Duy Nguyen
2019-03-17  6:00         ` [PATCH] unpack-trees: fix oneway_merge accidentally carry over stage index Nguyễn Thái Ngọc Duy
2019-03-18  3:58           ` Junio C Hamano
2019-03-18  9:24             ` Duy Nguyen
2019-03-18  9:40               ` Junio C Hamano
2019-03-18 11:38           ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2019-03-18 15:40             ` Elijah Newren
2019-03-19 14:06             ` Phillip Wood
2019-03-20  0:41               ` Junio C Hamano
2019-03-11 17:54       ` [PATCH v3 10/21] checkout: split part of it to new command 'switch' Elijah Newren
2019-03-12 11:06         ` Phillip Wood
2019-03-12 16:43           ` Elijah Newren
2019-03-14 11:00             ` Phillip Wood
2019-03-19  9:39               ` [PATCH] checkout.txt: note about losing staged changes with --merge Nguyễn Thái Ngọc Duy
2019-03-19 11:24                 ` Phillip Wood
2019-03-20  0:23                 ` Junio C Hamano
2019-03-20  0:40                   ` Duy Nguyen
2019-03-20  1:19                     ` Junio C Hamano
2019-03-20  1:22                       ` Duy Nguyen
2019-03-20  1:50                         ` Junio C Hamano
2019-03-13 11:05         ` [PATCH v3 10/21] checkout: split part of it to new command 'switch' Duy Nguyen
2019-03-13 14:36           ` Elijah Newren
2019-03-08  9:57     ` [PATCH v3 11/21] switch: better names for -b and -B Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 12/21] switch: remove -l Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 13/21] switch: stop accepting pathspec Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 14/21] switch: reject "do nothing" case Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 15/21] switch: only allow explicit detached HEAD Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 16/21] switch: add short option for --detach Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 17/21] switch: no implicit dwim, use --guess to dwim Nguyễn Thái Ngọc Duy
2019-03-13 18:36       ` Eckhard Maaß
2019-03-15  8:19         ` Eric Sunshine
2019-03-15  9:29           ` Duy Nguyen
2019-03-18  4:11           ` Junio C Hamano
2019-03-16  3:59         ` Duy Nguyen
2019-03-08  9:57     ` [PATCH v3 18/21] switch: no worktree status unless real branch switch happens Nguyễn Thái Ngọc Duy
2019-03-10  3:43       ` Eric Sunshine
2019-03-08  9:57     ` [PATCH v3 19/21] t: add tests for switch Nguyễn Thái Ngọc Duy
2019-03-10  3:59       ` Eric Sunshine
2019-03-10 10:09       ` Andrei Rybak
2019-03-08  9:57     ` [PATCH v3 20/21] completion: support switch Nguyễn Thái Ngọc Duy
2019-03-08  9:57     ` [PATCH v3 21/21] doc: promote "git switch" Nguyễn Thái Ngọc Duy
2019-03-08 17:48     ` [PATCH v3 00/21] Add new command "switch" Ramsay Jones
2019-03-09 11:56       ` Duy Nguyen
2019-03-17 12:49     ` [PATCH v4 00/26] Add new command 'switch' Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 01/26] git-checkout.txt: spell out --no-option Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 02/26] git-checkout.txt: fix one syntax line Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 03/26] doc: document --overwrite-ignore Nguyễn Thái Ngọc Duy
2019-03-17 19:18         ` Martin Ågren
2019-03-17 12:49       ` [PATCH v4 04/26] git-checkout.txt: fix monospace typeset Nguyễn Thái Ngọc Duy
2019-03-17 19:21         ` Martin Ågren
2019-03-17 12:49       ` [PATCH v4 05/26] t: rename t2014-switch.sh to t2014-checkout-switch.sh Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 06/26] checkout: advice how to get out of detached HEAD mode Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 07/26] checkout: keep most #include sorted Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 08/26] checkout: factor out some code in parse_branchname_arg() Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 09/26] checkout: make "opts" in cmd_checkout() a pointer Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 10/26] checkout: move 'confict_style' and 'dwim_..' to checkout_opts Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` Nguyễn Thái Ngọc Duy [this message]
2019-03-17 12:49       ` [PATCH v4 12/26] checkout: split part of it to new command 'switch' Nguyễn Thái Ngọc Duy
2019-03-18 16:48         ` Elijah Newren
2019-03-17 12:49       ` [PATCH v4 13/26] switch: better names for -b and -B Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 14/26] switch: add --discard-changes Nguyễn Thái Ngọc Duy
2019-03-18 23:55         ` Eric Sunshine
2019-03-17 12:49       ` [PATCH v4 15/26] switch: remove -l Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 16/26] switch: stop accepting pathspec Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 17/26] switch: reject "do nothing" case Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 18/26] switch: only allow explicit detached HEAD Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 19/26] switch: add short option for --detach Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 20/26] switch: implicit dwim, use --no-guess to disable it Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 21/26] switch: no worktree status unless real branch switch happens Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 22/26] switch: reject if some operation is in progress Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 23/26] switch: --orphan defaults to empty tree as HEAD Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 24/26] t: add tests for switch Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 25/26] completion: support switch Nguyễn Thái Ngọc Duy
2019-03-17 12:49       ` [PATCH v4 26/26] doc: promote "git switch" Nguyễn Thái Ngọc Duy
2019-03-17 12:58       ` [PATCH v4 00/26] Add new command 'switch' Duy Nguyen
2019-03-18  4:54         ` Junio C Hamano
2019-03-18 12:13           ` Duy Nguyen
2019-03-19  0:43             ` Junio C Hamano

Reply instructions:

You may reply publically 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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190317124926.17137-12-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=eckhard.s.maass@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.keller@gmail.com \
    --cc=martin.agren@gmail.com \
    --cc=newren@gmail.com \
    --cc=phillip.wood123@gmail.com \
    --cc=rybak.a.v@gmail.com \
    --cc=sunshine@sunshineco.com \
    --cc=szeder.dev@gmail.com \
    /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

git@vger.kernel.org list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/
       or Tor2web: https://www.tor2web.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox