mirror of
https://github.com/git/git
synced 2024-08-27 03:29:21 +00:00
name-ref: factor out name shortening logic from name_ref()
The logic will be used in a new codepath for showing exact matches. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
96ffd4ca93
commit
9608a190c0
|
@ -96,6 +96,17 @@ static int subpath_matches(const char *path, const char *filter)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static const char *name_ref_abbrev(const char *refname, int shorten_unambiguous)
|
||||
{
|
||||
if (shorten_unambiguous)
|
||||
refname = shorten_unambiguous_ref(refname, 0);
|
||||
else if (!prefixcmp(refname, "refs/heads/"))
|
||||
refname = refname + 11;
|
||||
else if (!prefixcmp(refname, "refs/"))
|
||||
refname = refname + 5;
|
||||
return refname;
|
||||
}
|
||||
|
||||
struct name_ref_data {
|
||||
int tags_only;
|
||||
int name_only;
|
||||
|
@ -134,13 +145,7 @@ static int name_ref(const char *path, const unsigned char *sha1, int flags, void
|
|||
if (o && o->type == OBJ_COMMIT) {
|
||||
struct commit *commit = (struct commit *)o;
|
||||
|
||||
if (can_abbreviate_output)
|
||||
path = shorten_unambiguous_ref(path, 0);
|
||||
else if (!prefixcmp(path, "refs/heads/"))
|
||||
path = path + 11;
|
||||
else if (!prefixcmp(path, "refs/"))
|
||||
path = path + 5;
|
||||
|
||||
path = name_ref_abbrev(path, can_abbreviate_output);
|
||||
name_rev(commit, xstrdup(path), 0, 0, deref);
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue