show-branch: simplify rev_is_head()

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>
This commit is contained in:
René Scharfe 2021-08-27 21:20:27 +02:00 committed by Junio C Hamano
parent 225bc32a98
commit e4f8d27585

View 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]);