Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

ResolveRevision doesn't resolve annotated tags #772

@rykov

Description

@rykov

Looking through the revision.Ref case for the switch statement in ResolveRevision, the tag is resolved, however, calling r.CommitObject fails with "object not found" error because the resolved commit is not a commit Hash. Seems like one needs to call r.resolveToCommitHash either before CommitObject or inside of it (depending on the intended API)

go-git/repository.go

Lines 914 to 930 in ecda5c1

for _, rule := range append([]string{"%s"}, plumbing.RefRevParseRules...) {
ref, err = storer.ResolveReference(r.Storer, plumbing.ReferenceName(fmt.Sprintf(rule, revisionRef)))
if err == nil {
break
}
}
if ref == nil {
return &plumbing.ZeroHash, plumbing.ErrReferenceNotFound
}
commit, err = r.CommitObject(ref.Hash())
if err != nil {
return &plumbing.ZeroHash, err
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions