checkout: add simple check for 'git checkout -b'
[gitweb.git] / builtin / checkout.c
index f884d27f1f591018937638251278b9f41304793f..2bca5fe4925638cfd2dd77a3b8f1836d326b902f 100644 (file)
@@ -1698,6 +1698,15 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
        opts.checkout_index = -2;    /* default on */
        opts.checkout_worktree = -2; /* default on */
 
+       if (argc == 3 && !strcmp(argv[1], "-b")) {
+               /*
+                * User ran 'git checkout -b <branch>' and expects
+                * the same behavior as 'git switch -c <branch>'.
+                */
+               opts.switch_branch_doing_nothing_is_ok = 0;
+               opts.only_merge_on_switching_branches = 1;
+       }
+
        options = parse_options_dup(checkout_options);
        options = add_common_options(&opts, options);
        options = add_common_switch_branch_options(&opts, options);