fast-export: avoid dying when filtering by paths and old tags exist
commit1f30c904b38552dccd90135334c342e17a1ed077
authorElijah Newren <newren@gmail.com>
Fri, 16 Nov 2018 07:59:50 +0000 (15 23:59 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 17 Nov 2018 09:43:51 +0000 (17 18:43 +0900)
treee4d3c4c579ec2855fa259f1512c775eddc596d57
parentb93b81e799ba6a59820821b4ea3afdec1970fbd6
fast-export: avoid dying when filtering by paths and old tags exist

If --tag-of-filtered-object=rewrite is specified along with a set of
paths to limit what is exported, then any tags pointing to old commits
that do not contain any of those specified paths cause problems.  Since
the old tagged commit is not exported, fast-export attempts to rewrite
such tags to an ancestor commit which was exported.  If no such commit
exists, then fast-export currently die()s.  Five years after the tag
rewriting logic was added to fast-export (see commit 2d8ad4691921,
"fast-export: Add a --tag-of-filtered-object  option for newly dangling
tags", 2009-06-25), fast-import gained the ability to delete refs (see
commit 4ee1b225b99f, "fast-import: add support to delete refs",
2014-04-20), so now we do have a valid option to rewrite the tag to.
Delete these tags instead of dying.

Signed-off-by: Elijah Newren <newren@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fast-export.c
t/t9350-fast-export.sh