@matheusbsbs / matheus-bagliano / commits / 46148dd7ea
Fork 0

git checkout --no-guess

Porcelains may want to make sure their calls to "git checkout" will reliably fail regardless of the presense of random remote tracking branches by the new DWIMmery introduced. Luckily all existing in-tree callers have extra checks to make sure they feed local branch name when they want to switch, or they explicitly ask to detach HEAD at the given commit, so there is no need to add this option for them. As this is strictly script-only option, do not even bother to document it, and do bother to hide it from "git checkout -h". Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Oct 18, 2009 at 00:49 UTC 46148dd7ea41de10fc784c247924f73ddb21121b
1 file changed +5
builtin-checkout.c
+5
@@ -616,6 +616,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
616 struct tree *source_tree = NULL;
617 char *conflict_style = NULL;
618 int patch_mode = 0;
619 + int dwim_new_local_branch = 1;
620 struct option options[] = {
621 OPT__QUIET(&opts.quiet),
622 OPT_STRING('b', NULL, &opts.new_branch, "new branch", "branch"),
@@ -631,6 +632,9 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
632 OPT_STRING(0, "conflict", &conflict_style, "style",
633 "conflict style (merge or diff3)"),
634 OPT_BOOLEAN('p', "patch", &patch_mode, "select hunks interactively"),
635 + { OPTION_BOOLEAN, 0, "guess", &dwim_new_local_branch, NULL,
636 + "second guess 'git checkout no-such-branch'",
637 + PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
638 OPT_END(),
639 };
640 int has_dash_dash;
@@ -715,6 +719,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
719 if (has_dash_dash) /* case (1) */
720 die("invalid reference: %s", arg);
721 if (!patch_mode &&
722 + dwim_new_local_branch &&
723 opts.track == BRANCH_TRACK_UNSPECIFIED &&
724 !opts.new_branch &&
725 !check_filename(NULL, arg) &&