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

Re: [PATCH 1/7] fast-export: Omit tags that tag trees

From
Elijah Newren <newren@gmail.com>
Date
Jun 20, 2009, 18:01 UTC
Message-ID
<51419b2c0906201101u2f8e6981q84ab7acc13dc9135@mail.gmail.com>
In-Reply-To
<20090620173128.GE31022@coredump.intra.peff.net>
Hi,
On Sat, Jun 20, 2009 at 11:31 AM, Jeff King<peff@peff.net> wrote:
Show 12 quoted lines
> Do we really want to disallow tags pointing to trees? There is at least
> one well-known case in use (kernel v2.6.11).
>
> Also, (and I haven't investigated at all), this sounds like the same
> issue we have with tags pointing to tags. IOW, everything referenceable
> should be given a mark, but it is not currently. I posted a "how about
> this" patch for the tag case here:
>
>  http://article.gmane.org/gmane.comp.version-control.git/119245
>
> but I never got around to following it up with tests. Could you do
> something similar for the tree case?

I don't see how we could do something similar for the tree case without making some significant change to the output/input of both fast-export and fast-import. Tag objects are part of the output of fast-export, thus we can add a mark line to give the object a name and thus provide us a valid mark we can make the outer tag point to. Trees are not output by fast-export (other than implicitly by including files in commits), so we have nothing to point such a tag at. If we were to do something like use the full sha1sum instead of marks in such a case (which git-fast-import should currently accept), then (a) we'd break exporting a repository limited by path ('git fast-export master -- libfoo"), and (b) we'd break interoperation with other tools like bzr-fast-import (or a possible future git that uses a different checksum).

If someone wanted to tackle modifying the output/input syntax of fast-export and fast-import, maybe something could be done here, but my patch just tries to make things operate sanely within the given documented limitations (as found in the git-fast-export manpage -- "Since 'git-fast-import' cannot tag trees, you will not be able to export the linux-2.6.git repository completely, as it contains a tag referencing a tree instead of a commit.").

Elijah
Previous: Jeff KingNext: Jeff King
Message 4 of 14 in “A few fast-export fixups”
  1. newren@gmail.comJun 20, 2009
  2. 1/7 fast-export: Omit tags that tag treesnewren@gmail.com, Jun 20, 2009
  3. Jeff KingJun 20, 2009
  4. Elijah NewrenJun 20, 2009
  5. Jeff KingJun 20, 2009
  6. 2/7 Modify fast-export testcase to check that we correctly omit tags of treesnewren@gmail.com, Jun 20, 2009
  7. Stephen BoydJun 21, 2009
  8. Johannes SixtJun 21, 2009
  9. Elijah NewrenJun 22, 2009
  10. 3/7 fast-export: Make sure we show actual ref names instead of "(null)"newren@gmail.com, Jun 20, 2009
  11. 4/7 fast-export: Do parent rewriting to avoid dropping relevant commitsnewren@gmail.com, Jun 20, 2009
  12. 5/7 fast-export: Add a --tag-of-filtered-object option for newly dangling tagsnewren@gmail.com, Jun 20, 2009
  13. 6/7 Add new fast-export testcasesnewren@gmail.com, Jun 20, 2009
  14. 7/7 fast-export: Document the fact that git-rev-list arguments are acceptednewren@gmail.com, Jun 20, 2009

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.