[PATCH 1/7] fast-export: Omit tags that tag trees
From: <hidden>
Date: 2016-06-15 22:46:58
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Elijah Newren <redacted> Commit c0582c53bcf4e83bba70e1ad23abbad31f96ebc8 introduced logic to just omit tags that point to tree objects. However, a case was missed resulting in a tag being output which pointed at "mark :0", which would cause fast-import to crash. Signed-off-by: Elijah Newren <redacted> --- builtin-fast-export.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/builtin-fast-export.c b/builtin-fast-export.c
index 6cef810..891e2d4 100644
--- a/builtin-fast-export.c
+++ b/builtin-fast-export.c@@ -407,9 +407,15 @@ static void handle_tags_and_duplicates(struct string_list *extra_refs) for (i = extra_refs->nr - 1; i >= 0; i--) { const char *name = extra_refs->items[i].string; struct object *object = extra_refs->items[i].util; + struct tag *tag; switch (object->type) { case OBJ_TAG: - handle_tag(name, (struct tag *)object); + tag = (struct tag *)object; + if (tag->tagged->type == OBJ_TREE) { + /* Ignore this tag altogether */ + return; + } + handle_tag(name, tag); break; case OBJ_COMMIT: /* create refs pointing to already seen commits */
--
1.6.3.2.323.gfb84f