From: Ben Peart Date: Fri, 18 Jan 2019 18:55:58 GMT Subject: [PATCH v1 2/2] checkout: fix regression in checkout -b on intitial checkout Message-ID: <20190118185558.17688-3-peartben@gmail.com> In-Reply-To: <20190118185558.17688-1-peartben@gmail.com> From: Ben Peart When doing a 'checkout -b' do a full checkout including updating the working tree when doing the initial checkout. This fixes the regression in behavior caused by fa655d8411 checkout: optimize "git checkout -b " Signed-off-by: Ben Peart --- builtin/checkout.c | 6 ++++++ t/t2018-checkout-branch.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/builtin/checkout.c b/builtin/checkout.c index 6fadf412e8..af6b5c8336 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -517,6 +517,12 @@ static int skip_merge_working_tree(const struct checkout_opts *opts, if (core_apply_sparse_checkout && !checkout_optimize_new_branch) return 0; + /* + * We must do the merge if this is the initial checkout + */ + if (is_cache_unborn()) + return 0; + /* * We must do the merge if we are actually moving to a new commit. */ diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh index 35999b3adb..c438889b0c 100755 --- a/t/t2018-checkout-branch.sh +++ b/t/t2018-checkout-branch.sh @@ -206,7 +206,7 @@ test_expect_success 'checkout -b after clone --no-checkout does a checkout of HE rev="$(git -C src rev-parse HEAD)" && git clone --no-checkout src dest && git -C dest checkout "$rev" -b branch && - test_must_fail test -f dest/a + test -f dest/a ' test_done -- 2.19.1.gvfs.1.16.g9d1374d