]> git.ipfire.org Git - thirdparty/git.git/commitdiff
parse_branchname_arg(): extract part as new function
authorAlexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
Mon, 30 Dec 2019 18:38:12 +0000 (18:38 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Jan 2020 21:15:37 +0000 (13:15 -0800)
This is done for the next commit to avoid crazy 7x tab code padding.

Signed-off-by: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c

index 3634a3dac15ae9deca30325ef5b19d5b3e250eb0..11fe4fa7e7e0e9b401a21d48e654b17c8884fb72 100644 (file)
@@ -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) */