This series improves the incremental export story for fast-export and fast-import (--export-marks and --import-marks fell a bit short), fixes a couple small export/import bugs, and enables handling nested tags. In particular, the nested tags handling makes it so that fast-export and fast-import can finally handle the git.git repo. Changes since v1 (full range-diff below): - Fixed an issue integrating with next/pu (in particular, with jk/fast-import-history-bugfix) Elijah Newren (8): fast-export: fix exporting a tag and nothing else fast-import: fix handling of deleted tags fast-import: allow tags to be identified by mark labels fast-import: add support for new 'alias' command fast-export: add support for --import-marks-if-exists fast-export: allow user to request tags be marked with --mark-tags t9350: add tests for tags of things other than a commit fast-export: handle nested tags Documentation/git-fast-export.txt | 17 ++++-- Documentation/git-fast-import.txt | 23 ++++++++ builtin/fast-export.c | 67 ++++++++++++++++------ fast-import.c | 94 +++++++++++++++++++++++++++---- t/t9300-fast-import.sh | 37 ++++++++++++ t/t9350-fast-export.sh | 68 ++++++++++++++++++++-- 6 files changed, 268 insertions(+), 38 deletions(-) Range-diff: 1: b751d6c2d6 ! 1: 1d19498bc6 fast-import: fix handling of deleted tags @@ fast-import.c: static void parse_reset_branch(const char *arg) b = new_branch(arg); read_next_command(); parse_from(b); -+ if (b->delete && !strncmp(arg, "refs/tags/", 10)) { ++ if (b->delete && !strncmp(b->name, "refs/tags/", 10)) { + /* + * Elsewhere, we call dump_branches() before dump_tags(), + * and dump_branches() will handle ref deletions first, so @@ fast-import.c: static void parse_reset_branch(const char *arg) + for (t = first_tag; t; t = t->next_tag) { + strbuf_reset(&tag_name); + strbuf_addf(&tag_name, "refs/tags/%s", t->name); -+ if (!strcmp(arg, tag_name.buf)) ++ if (!strcmp(b->name, tag_name.buf)) + break; + prev = t; + } 2: 26b77dde15 = 2: e1fd888e4a fast-import: allow tags to be identified by mark labels 3: e0d1a1d7aa = 3: 93175f28d9 fast-import: add support for new 'alias' command 4: edea892661 = 4: 8c8743395c fast-export: add support for --import-marks-if-exists 5: 6af7e1fdd0 = 5: eebc40df33 fast-export: allow user to request tags be marked with --mark-tags 6: 631ae9a63e = 6: de39f703c6 t9350: add tests for tags of things other than a commit 7: c0e932e4da = 7: ac739dbb79 fast-export: handle nested tags -- 2.23.0.264.gac739dbb79