diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:27 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:27 +0900 |
commit | 3ff6af7753287f2cac8261ae5184c3381373b836 (patch) | |
tree | c8270adad0caf921e4ae592f9d80a77e887bdc3c /builtin/checkout.c | |
parent | Merge branch 'tb/file-url-to-unc-path' (diff) | |
parent | checkout: add simple check for 'git checkout -b' (diff) | |
download | tgif-3ff6af7753287f2cac8261ae5184c3381373b836.tar.xz |
Merge branch 'nd/switch-and-restore'
Resurrect a performance hack.
* nd/switch-and-restore:
checkout: add simple check for 'git checkout -b'
Diffstat (limited to 'builtin/checkout.c')
-rw-r--r-- | builtin/checkout.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index 0a3679eb77..1283727761 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -1708,6 +1708,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); |