Re: Malformed branch name in fast-export when specifying non-HEAD/branch revision
flat view
From: Jeff King <hidden>
Date: 2016-06-15 22:51:50
On Wed, Aug 17, 2011 at 03:30:14PM -0700, Junio C Hamano wrote:
You can think of "fast-export" an off-line "push" command [*1*]; instead of giving a random commit object, e.g. "git fast-export HEAD~1", that can not be used as a ref, you can use the refspec notation to tell where the result should go, e.g. "git fast-export HEAD~1:refs/heads/a-bit-older", from the command line of fast-export. I suspect that also may clarify what Sverre was trying to do in his recent series. The root cause of both this and the issue Sverre wanted to fix is the design mistake of fast-export that tries to reuse the notation of object range specification for a different purpose of telling which "ref" to update, I think.
Yes, this was the conclusion I came to when I looked at this a month or so ago. You really need to give fast-export a mapping of objects to refnames, and it should output ref names _only_ for the mapping. That would handle this "not a ref" case, but would also let you push "refs/heads/foo" when it is equivalent to "refs/heads/master", without fast-export mentioning "refs/heads/master" at all. -Peff