]> git.ipfire.org Git - thirdparty/git.git/commitdiff
show-branch: simplify rev_is_head()
authorRené Scharfe <l.s.r@web.de>
Fri, 27 Aug 2021 19:20:27 +0000 (21:20 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Aug 2021 21:12:15 +0000 (14:12 -0700)
Only one of the callers of rev_is_head() provides two hashes to compare.
Move that check there and convert it to struct object_id.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/show-branch.c

index d77ce7aeb3824bb00bc068063672d60712c7827b..bea4bbf46808df826f7aa36cb8259eb86e634e05 100644 (file)
@@ -482,10 +482,9 @@ static void snarf_refs(int head, int remotes)
        }
 }
 
-static int rev_is_head(const char *head, const char *name,
-                      unsigned char *head_sha1, unsigned char *sha1)
+static int rev_is_head(const char *head, const char *name)
 {
-       if (!head || (head_sha1 && sha1 && !hasheq(head_sha1, sha1)))
+       if (!head)
                return 0;
        skip_prefix(head, "refs/heads/", &head);
        if (!skip_prefix(name, "refs/heads/", &name))
@@ -806,9 +805,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
                        /* We are only interested in adding the branch
                         * HEAD points at.
                         */
-                       if (rev_is_head(head,
-                                       ref_name[i],
-                                       head_oid.hash, NULL))
+                       if (rev_is_head(head, ref_name[i]))
                                has_head++;
                }
                if (!has_head) {
@@ -867,10 +864,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
        if (1 < num_rev || extra < 0) {
                for (i = 0; i < num_rev; i++) {
                        int j;
-                       int is_head = rev_is_head(head,
-                                                 ref_name[i],
-                                                 head_oid.hash,
-                                                 rev[i]->object.oid.hash);
+                       int is_head = rev_is_head(head, ref_name[i]) &&
+                                     oideq(&head_oid, &rev[i]->object.oid);
                        if (extra < 0)
                                printf("%c [%s] ",
                                       is_head ? '*' : ' ', ref_name[i]);