diff options
author | Elijah Newren <newren@gmail.com> | 2019-10-03 13:27:04 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-10-04 07:33:21 +0900 |
commit | f73b2aba05788208ccd9b48f350b90cbfe57e1c4 (patch) | |
tree | a82fc54fb135a3945bc1e3ad347ea14644bec822 /fast-import.c | |
parent | fast-import: fix handling of deleted tags (diff) | |
download | tgif-f73b2aba05788208ccd9b48f350b90cbfe57e1c4.tar.xz |
fast-import: allow tags to be identified by mark labels
Mark identifiers are used in fast-export and fast-import to provide a
label to refer to earlier content. Blobs are given labels because they
need to be referenced in the commits where they first appear with a
given filename, and commits are given labels because they can be the
parents of other commits. Tags were never given labels, probably
because they were viewed as unnecessary, but that presents two problems:
1. It leaves us without a way of referring to previous tags if we
want to create a tag of a tag (or higher nestings).
2. It leaves us with no way of recording that a tag has already been
imported when using --export-marks and --import-marks.
Fix these problems by allowing an optional mark label for tags.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fast-import.c')
-rw-r--r-- | fast-import.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fast-import.c b/fast-import.c index caae0819f5..5b9e9e3b02 100644 --- a/fast-import.c +++ b/fast-import.c @@ -2713,6 +2713,7 @@ static void parse_new_tag(const char *arg) first_tag = t; last_tag = t; read_next_command(); + parse_mark(); /* from ... */ if (!skip_prefix(command_buf.buf, "from ", &from)) @@ -2769,7 +2770,7 @@ static void parse_new_tag(const char *arg) strbuf_addbuf(&new_data, &msg); free(tagger); - if (store_object(OBJ_TAG, &new_data, NULL, &t->oid, 0)) + if (store_object(OBJ_TAG, &new_data, NULL, &t->oid, next_mark)) t->pack_id = MAX_PACK_ID; else t->pack_id = pack_id; |