for-each-ref: introduce %(HEAD) asterisk marker
'git branch' shows which branch you are currently on with an '*', but 'git for-each-ref' misses this feature. So, extend its format with %(HEAD) for the same effect. Now you can use the following format in for-each-ref: %(HEAD) %(refname:short) to display an asterisk next to the current ref. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
189a546797
commit
7a48b83219
@ -93,6 +93,10 @@ upstream::
|
|||||||
from the displayed ref. Respects `:short` in the same way as
|
from the displayed ref. Respects `:short` in the same way as
|
||||||
`refname` above.
|
`refname` above.
|
||||||
|
|
||||||
|
HEAD::
|
||||||
|
'*' if HEAD matches current ref (the checked out branch), ' '
|
||||||
|
otherwise.
|
||||||
|
|
||||||
In addition to the above, for commit and tag objects, the header
|
In addition to the above, for commit and tag objects, the header
|
||||||
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
|
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
|
||||||
be used to specify the value in the header field.
|
be used to specify the value in the header field.
|
||||||
|
@ -75,6 +75,7 @@ static struct {
|
|||||||
{ "upstream" },
|
{ "upstream" },
|
||||||
{ "symref" },
|
{ "symref" },
|
||||||
{ "flag" },
|
{ "flag" },
|
||||||
|
{ "HEAD" },
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -675,8 +676,16 @@ static void populate_value(struct refinfo *ref)
|
|||||||
v->s = xstrdup(buf + 1);
|
v->s = xstrdup(buf + 1);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
} else if (!strcmp(name, "HEAD")) {
|
||||||
else
|
const char *head;
|
||||||
|
unsigned char sha1[20];
|
||||||
|
head = resolve_ref_unsafe("HEAD", sha1, 1, NULL);
|
||||||
|
if (!strcmp(ref->refname, head))
|
||||||
|
v->s = "*";
|
||||||
|
else
|
||||||
|
v->s = " ";
|
||||||
|
continue;
|
||||||
|
} else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
formatp = strchr(name, ':');
|
formatp = strchr(name, ':');
|
||||||
|
@ -77,6 +77,7 @@ test_atom head contents:body ''
|
|||||||
test_atom head contents:signature ''
|
test_atom head contents:signature ''
|
||||||
test_atom head contents 'Initial
|
test_atom head contents 'Initial
|
||||||
'
|
'
|
||||||
|
test_atom head HEAD '*'
|
||||||
|
|
||||||
test_atom tag refname refs/tags/testtag
|
test_atom tag refname refs/tags/testtag
|
||||||
test_atom tag upstream ''
|
test_atom tag upstream ''
|
||||||
@ -110,6 +111,7 @@ test_atom tag contents:body ''
|
|||||||
test_atom tag contents:signature ''
|
test_atom tag contents:signature ''
|
||||||
test_atom tag contents 'Tagging at 1151939927
|
test_atom tag contents 'Tagging at 1151939927
|
||||||
'
|
'
|
||||||
|
test_atom tag HEAD ' '
|
||||||
|
|
||||||
test_expect_success 'Check invalid atoms names are errors' '
|
test_expect_success 'Check invalid atoms names are errors' '
|
||||||
test_must_fail git for-each-ref --format="%(INVALID)" refs/heads
|
test_must_fail git for-each-ref --format="%(INVALID)" refs/heads
|
||||||
|
Loading…
Reference in New Issue
Block a user