Merge branch 'sb/checkout-explit-detach-no-advice' into maint
"git checkout --detach <branch>" used to give the same advice message as that is issued when "git checkout <tag>" (or anything that is not a branch name) is given, but asking with "--detach" is an explicit enough sign that the user knows what is going on. The advice message has been squelched in this case. * sb/checkout-explit-detach-no-advice: checkout: do not mention detach advice for explicit --detach option
This commit is contained in:
@ -655,7 +655,8 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
|
|||||||
update_ref(msg.buf, "HEAD", new->commit->object.oid.hash, NULL,
|
update_ref(msg.buf, "HEAD", new->commit->object.oid.hash, NULL,
|
||||||
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||||
if (!opts->quiet) {
|
if (!opts->quiet) {
|
||||||
if (old->path && advice_detached_head)
|
if (old->path &&
|
||||||
|
advice_detached_head && !opts->force_detach)
|
||||||
detach_advice(new->name);
|
detach_advice(new->name);
|
||||||
describe_detached_head(_("HEAD is now at"), new->commit);
|
describe_detached_head(_("HEAD is now at"), new->commit);
|
||||||
}
|
}
|
||||||
|
@ -163,4 +163,27 @@ test_expect_success 'tracking count is accurate after orphan check' '
|
|||||||
test_i18ncmp expect stdout
|
test_i18ncmp expect stdout
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'no advice given for explicit detached head state' '
|
||||||
|
# baseline
|
||||||
|
test_config advice.detachedHead true &&
|
||||||
|
git checkout child && git checkout HEAD^0 >expect.advice 2>&1 &&
|
||||||
|
test_config advice.detachedHead false &&
|
||||||
|
git checkout child && git checkout HEAD^0 >expect.no-advice 2>&1 &&
|
||||||
|
test_unconfig advice.detachedHead &&
|
||||||
|
# without configuration, the advice.* variables default to true
|
||||||
|
git checkout child && git checkout HEAD^0 >actual 2>&1 &&
|
||||||
|
test_cmp expect.advice actual &&
|
||||||
|
|
||||||
|
# with explicit --detach
|
||||||
|
# no configuration
|
||||||
|
test_unconfig advice.detachedHead &&
|
||||||
|
git checkout child && git checkout --detach HEAD^0 >actual 2>&1 &&
|
||||||
|
test_cmp expect.no-advice actual &&
|
||||||
|
|
||||||
|
# explicitly decline advice
|
||||||
|
test_config advice.detachedHead false &&
|
||||||
|
git checkout child && git checkout --detach HEAD^0 >actual 2>&1 &&
|
||||||
|
test_cmp expect.no-advice actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user