lookup commits of annotated tags
NOTE: as described in the TODO this will be rewritten more cleanly later using git_reference_*.
This commit is contained in:
parent
9128782aa8
commit
d045340ea0
1 changed files with 16 additions and 0 deletions
16
stagit.c
16
stagit.c
|
@ -875,6 +875,7 @@ writetags(FILE *fp)
|
|||
struct commitinfo *ci;
|
||||
git_strarray tagnames;
|
||||
git_object *obj = NULL;
|
||||
git_tag *tag = NULL;
|
||||
const git_oid *id = NULL;
|
||||
size_t i, len;
|
||||
|
||||
|
@ -900,6 +901,18 @@ writetags(FILE *fp)
|
|||
if (git_revparse_single(&obj, repo, tagnames.strings[i]))
|
||||
continue;
|
||||
id = git_object_id(obj);
|
||||
|
||||
/* lookup actual commit (from annotated tag etc) */
|
||||
if (!git_tag_lookup(&tag, repo, id)) {
|
||||
git_object_free(obj);
|
||||
obj = NULL;
|
||||
if (git_tag_peel(&obj, tag))
|
||||
break;
|
||||
git_tag_free(tag);
|
||||
tag = NULL;
|
||||
id = git_object_id(obj);
|
||||
}
|
||||
|
||||
if (!(ci = commitinfo_getbyoid(id)))
|
||||
break;
|
||||
|
||||
|
@ -936,9 +949,12 @@ writetags(FILE *fp)
|
|||
|
||||
commitinfo_free(ci);
|
||||
git_object_free(obj);
|
||||
obj = NULL;
|
||||
}
|
||||
fputs("</tbody></table>", fp);
|
||||
git_strarray_free(&tagnames);
|
||||
git_tag_free(tag);
|
||||
git_object_free(obj);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue