Skip to content

Commit 6ea9381

Browse files
committed
annotated_commit: peel to commit instead of assuming we have one
We want to allow the creation of annotated commits out of annotated tags and for that we have to peel the reference all the way to the commit instead of stopping at the first id it provides.
1 parent 5bd78c4 commit 6ea9381

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/annotated_commit.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,27 +123,27 @@ int git_annotated_commit_from_ref(
123123
git_repository *repo,
124124
const git_reference *ref)
125125
{
126-
git_reference *resolved;
126+
git_object *peeled;
127127
int error = 0;
128128

129129
assert(out && repo && ref);
130130

131131
*out = NULL;
132132

133-
if ((error = git_reference_resolve(&resolved, ref)) < 0)
133+
if ((error = git_reference_peel(&peeled, ref, GIT_OBJ_COMMIT)) < 0)
134134
return error;
135135

136136
error = annotated_commit_init_from_id(out,
137137
repo,
138-
git_reference_target(resolved),
138+
git_object_id(peeled),
139139
git_reference_name(ref));
140140

141141
if (!error) {
142142
(*out)->ref_name = git__strdup(git_reference_name(ref));
143143
GITERR_CHECK_ALLOC((*out)->ref_name);
144144
}
145145

146-
git_reference_free(resolved);
146+
git_object_free(peeled);
147147
return error;
148148
}
149149

0 commit comments

Comments
 (0)