Re: [PATCH 1/7] fast-export: Omit tags that tag trees
From: Jeff King <hidden>
Date: 2016-06-15 22:46:58
On Sat, Jun 20, 2009 at 12:01:00PM -0600, Elijah Newren wrote:
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
Ah, right. That falls under the "I didn't look at this too closely" part of my previous message. :) It does seem a shame not to be able to say "and now here is a tree" in the same way we say "and now here is a commit". And since that is not possible without add-ons that might cause compatibility issues, your fix seems reasonable to at least avoid generating bogus output. Another option would be to generate a pseudo-commit with no parentage that holds the tree, and then point the tag at that. It's obviously not exactly what the user wanted, but neither is simply omitting. You could even mark the commit message with a "THIS IS REALLY A TREE" magic string, and then have fast-import recognize and convert those back to a tree (by just peeling the commit away). -Peff