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

Commit b19b3b8

Browse files
committed
git: Don't touch tag objects orphaned by tag deletion
Deleting a tag ref for an annotated tag in normal git behavior does not delete the tag object right away. This is handled by the normal GC process. Signed-off-by: Chris Marchesi <chrism@vancluevertech.com>
1 parent 1000bc0 commit b19b3b8

File tree

1 file changed

+2
-16
lines changed

1 file changed

+2
-16
lines changed

repository.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -617,26 +617,12 @@ func (r *Repository) Tag(name string) (*plumbing.Reference, error) {
617617

618618
// DeleteTag deletes a tag from the repository.
619619
func (r *Repository) DeleteTag(name string) error {
620-
ref, err := r.Tag(name)
620+
_, err := r.Tag(name)
621621
if err != nil {
622622
return err
623623
}
624624

625-
obj, err := r.TagObject(ref.Hash())
626-
if err != nil && err != plumbing.ErrObjectNotFound {
627-
return err
628-
}
629-
630-
if err = r.Storer.RemoveReference(plumbing.ReferenceName(path.Join("refs", "tags", name))); err != nil {
631-
return err
632-
}
633-
634-
// Delete the tag object if this was an annotated tag.
635-
if obj != nil {
636-
return r.DeleteObject(obj.Hash)
637-
}
638-
639-
return nil
625+
return r.Storer.RemoveReference(plumbing.ReferenceName(path.Join("refs", "tags", name)))
640626
}
641627

642628
func (r *Repository) resolveToCommitHash(h plumbing.Hash) (plumbing.Hash, error) {

0 commit comments

Comments
 (0)