From f1627040b9305dc38994f799c172393909b2c70c Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Mon, 23 Jan 2017 18:00:56 +0000 Subject: show-ref: allow -d to work with --verify Move handling of -d into show_one(), so that it takes effect when --verify is present as well as when it is absent. This is useful when the user wishes to avoid the costly iteration of refs. Signed-off-by: Vladimir Panteleev Signed-off-by: Junio C Hamano --- builtin/show-ref.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'builtin/show-ref.c') diff --git a/builtin/show-ref.c b/builtin/show-ref.c index 0e53e3da4f..a72a626b18 100644 --- a/builtin/show-ref.c +++ b/builtin/show-ref.c @@ -19,19 +19,27 @@ static const char *exclude_existing_arg; static void show_one(const char *refname, const struct object_id *oid) { - const char *hex = find_unique_abbrev(oid->hash, abbrev); + const char *hex; + struct object_id peeled; + + hex = find_unique_abbrev(oid->hash, abbrev); if (hash_only) printf("%s\n", hex); else printf("%s %s\n", hex, refname); + + if (!deref_tags) + return; + + if (!peel_ref(refname, peeled.hash)) { + hex = find_unique_abbrev(peeled.hash, abbrev); + printf("%s %s^{}\n", hex, refname); + } } static int show_ref(const char *refname, const struct object_id *oid, int flag, void *cbdata) { - const char *hex; - struct object_id peeled; - if (show_head && !strcmp(refname, "HEAD")) goto match; @@ -79,13 +87,6 @@ match: show_one(refname, oid); - if (!deref_tags) - return 0; - - if (!peel_ref(refname, peeled.hash)) { - hex = find_unique_abbrev(peeled.hash, abbrev); - printf("%s %s^{}\n", hex, refname); - } return 0; } -- cgit v1.2.1