fast-import: fix handling of deleted tags
authorElijah Newren <redacted>
Thu, 3 Oct 2019 20:27:03 +0000 (13:27 -0700)
committerJunio C Hamano <redacted>
Thu, 3 Oct 2019 22:33:21 +0000 (07:33 +0900)
commit3164e6bd24ead3598dcf9374077f87167b796c93
treec4a9c2c7a1743e02767e8d46e0a04a02242b6a38
parentaf2abd870bfe4e95ccac20c721d5edaaa098d7ef
fast-import: fix handling of deleted tags

If our input stream includes a tag which is later deleted, we were not
properly deleting it.  We did have a step which would delete it, but we
left a tag in the tag list noting that it needed to be updated, and the
updating of annotated tags occurred AFTER ref deletion.  So, when we
record that a tag needs to be deleted, also remove it from the list of
annotated tags to update.

While this has likely been something that has not happened in practice,
it will come up more in order to support nested tags.  For nested tags,
we either need to give temporary names to the intermediate tags and then
delete them, or else we need to use the final name for the intermediate
tags.  If we use the final name for the intermediate tags, then in order
to keep the sanity check that someone doesn't try to update the same tag
twice, we need to delete the ref after creating the intermediate tag.
So, either way nested tags imply the need to delete temporary inner tag
references.

Helped-by: René Scharfe <redacted>
Signed-off-by: Elijah Newren <redacted>
Signed-off-by: Junio C Hamano <redacted>
fast-import.c
t/t9300-fast-import.sh
git clone https://git.99rst.org/PROJECT