When a user asked for a detached HEAD specifically with `--detach`,
we do not need to give advice on what a detached HEAD state entails as
we can assume they know what they're getting into as they asked for it.
Signed-off-by: Stefan Beller
---
jrnieder wrote:
> Examples?
What do you mean by example?
builtin/checkout.c | 2 +-
t/t2020-checkout-detach.sh | 13 +
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 8d852d4..85408b1 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -658,7 +658,7 @@ static void update_refs_for_switch(const struct
checkout_opts *opts,
update_ref(msg.buf, "HEAD", new->commit->object.oid.hash, NULL,
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
if (!opts->quiet) {
- if (old->path && advice_detached_head)
+ if (old->path && advice_detached_head &&
!opts->force_detach)
detach_advice(new->name);
describe_detached_head(_("HEAD is now at"),
new->commit);
}
diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh
index 5d68729..941ea49 100755
--- a/t/t2020-checkout-detach.sh
+++ b/t/t2020-checkout-detach.sh
@@ -163,4 +163,17 @@ test_expect_success 'tracking count is accurate after
orphan check' '
test_i18ncmp expect stdout
'
+test_expect_success 'no advice given for explicit detached head state' '
+ git config advice.detachedHead false &&
+ git checkout child &&
+ git checkout --detach HEAD >expect &&
+ git config advice.detachedHead true &&
+ git checkout child &&
+ git checkout --detach HEAD >actual &&
+ test_cmp expect actual &&
+ git checkout child &&
+ git checkout HEAD >actual &&
+ ! test_cmp expect actual
+'
+
test_done
--
2.9.2.730.g46b112d
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html