git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] parse_branchname_arg(): extract part as new function

From
AGAlexandr Miloslavskiy via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 27, 2019, 09:48 UTC
Message-ID
<c5b92ce3ed629ccd5efddb9d5c7a754ed2e8ddbe.1574848137.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.477.git.1574848137.gitgitgadget@gmail.com>
From: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
This is done for the next commit to avoid crazy 7x tab code padding.
Signed-off-by: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
---
 builtin/checkout.c | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 3634a3dac1..e1b9df1543 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1113,6 +1113,22 @@ static void setup_new_branch_info_and_source_tree(
 	}
 }
 
+static const char *parse_remote_branch(const char *arg,
+				       struct object_id *rev,
+				       int could_be_checkout_paths,
+				       int *dwim_remotes_matched)
+{
+	const char *remote = unique_tracking_name(arg, rev, dwim_remotes_matched);
+	
+	if (remote && could_be_checkout_paths) {
+		die(_("'%s' could be both a local file and a tracking branch.\n"
+			"Please use -- (and optionally --no-guess) to disambiguate"),
+		    arg);
+	}
+
+	return remote;
+}
+
 static int parse_branchname_arg(int argc, const char **argv,
 				int dwim_new_local_branch_ok,
 				struct branch_info *new_branch_info,
@@ -1223,13 +1239,10 @@ static int parse_branchname_arg(int argc, const char **argv,
 			recover_with_dwim = 0;
 
 		if (recover_with_dwim) {
-			const char *remote = unique_tracking_name(arg, rev,
-								  dwim_remotes_matched);
+			const char *remote = parse_remote_branch(arg, rev,
+								 could_be_checkout_paths,
+								 dwim_remotes_matched);
 			if (remote) {
-				if (could_be_checkout_paths)
-					die(_("'%s' could be both a local file and a tracking branch.\n"
-					      "Please use -- (and optionally --no-guess) to disambiguate"),
-					    arg);
 				*new_branch = arg;
 				arg = remote;
 				/* DWIMmed to create local branch, case (3).(b) */
-- 
gitgitgadget
Previous: Alexandr Miloslavskiy via GitGitGadgetNext: Alexandr Miloslavskiy via GitGitGadget
Message 2 of 13 in “checkout: die() on ambiguous tracking branches”
  1. 0/2 checkout: die() on ambiguous tracking branchesAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  2. 1/2 parse_branchname_arg(): extract part as new functionAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  3. 2/2 checkout: die() on ambiguous tracking branchesAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  4. Derrick StoleeNov 27, 2019
  5. Alexandr MiloslavskiyNov 27, 2019
  6. Ævar Arnfjörð BjarmasonNov 27, 2019
  7. Alexandr MiloslavskiyNov 27, 2019
  8. Alexandr MiloslavskiyDec 5, 2019
  9. 0/2 checkout: die() on ambiguous tracking branchesAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  10. 2/2 checkout: die() on ambiguous tracking branchesAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  11. 1/2 parse_branchname_arg(): extract part as new functionAlexandr Miloslavskiy via GitGitGadget, Nov 27, 2019
  12. Junio C HamanoDec 1, 2019
  13. Alexandr MiloslavskiyDec 1, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.