git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/3] fast-export, fast-import: let tags specify a different refname

From
Luke Shumaker <lukeshu@lukeshu.com>
Date
Apr 22, 2021, 01:06 UTC
Message-ID
<20210422010659.2498280-1-lukeshu@lukeshu.com>
From: Luke Shumaker <lukeshu@datawire.io>

After receiving positive feedback on the RFC, here's the polished-up v1.

This patchset adds an optional "refname" sub-command to fast-import's "tag" top-level-command; the stream

    tag foo
    refname refs/tags/bar
    ...

will create a tag at "refs/tags/bar" that says "tag foo" internally. If there is no "refname" line, it will continue with the existing behavior of using "refs/tags/<tagname>" as the refname.

This makes it now-possible for fast-export/fast-import to represent tags for which the internal tagname and the refname disagree. It also adds support for tags with refnames that do not begin with "refs/tags/". I discuss the motivation for supporting this in the commit message of the 3rd patch.

Changes from the RFC:
 - I've flipped it around; the existing `tag` line now specifices the
   tagname, and the added `refname` line now specifies the refname
   (rather than having the `tag` line specify the suffix of the
   refname, and the added `name` line specify the tagname).  This
   allows for tags whose refnames to not begin with "refs/tags/".
 - I've added prose documentation, rather than just updating the BNF.
   (The wording is based on what Junio suggested on the RFC.)
 - I added tests.
 - After responding to feedback, I ended up with just enough "moving
   and renaming things" noise that in the single commit that for v1 I
   split that out in to a econd commit.
 - While implementing the tests, I discovered a pre-existing bug with
   nested tags, so I added a separate third commit to fix that.

This passes all of the GitHub Actions CI checks, and passes all but one of the Travis-CI checks; the failing Travis-CI check seems to be an unrelated 404 from `apt-get`. https://github.com/LukeShu/git/runs/2405478827

[1]: https://lore.kernel.org/git/Pine.LNX.4.58.0506221433540.2353@ppc970.osdl.org/
Luke Shumaker (3):
  fast-export, fast-import: make stylistic changes
  fast-export: fix bug with nested tags
  fast-export, fast-import: let tags specify a different refname
 Documentation/git-fast-import.txt | 22 +++++++++------
 builtin/fast-export.c             | 47 ++++++++++++++++++++++++++-----
 builtin/fast-import.c             | 47 +++++++++++++++++++------------
 t/t9350-fast-export.sh            | 20 ++++++++++---
 4 files changed, 98 insertions(+), 38 deletions(-)
-- 
2.31.1

Happy hacking,
~ Luke Shumaker
Next: Luke Shumaker
Message 1 of 4 in “fast-export, fast-import: let tags specify a different refname”
  1. 0/3 fast-export, fast-import: let tags specify a different refnameLuke Shumaker, Apr 22, 2021
  2. 2/3 fast-export: fix bug with nested tagsLuke Shumaker, Apr 22, 2021
  3. 1/3 fast-export, fast-import: make stylistic changesLuke Shumaker, Apr 22, 2021
  4. 3/3 fast-export, fast-import: let tags specify a different refnameLuke Shumaker, Apr 22, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.