Hi again,
Felipe Contreras wrote:
> They have been marked as UNINTERESTING for a reason, lets respect that.
So, the above description conveyed zero information, as you mentioned.
A clearer explanation would be the following:
fast-export: don't emit "reset" command for negative refs
When "git fast-export" encounters two refs on the commandline
referring to the same commit, it exports the first during the usual
commit walk and the second using a "reset" command in a final pass
over extra_refs:
$ git fast-export master next
reset refs/heads/master
commit refs/heads/master
mark :1
author Jonathan Nieder <[email protected]> 1351644412 -0700
committer Jonathan Nieder <[email protected]> 1351644412 -0700
data 17
My first commit!
reset refs/heads/next
from :1
Unfortunately the code to do this doesn't distinguish between positive
and negative refs, producing confusing results:
$ git fast-export ^master next
reset refs/heads/next
from :0
$ git fast-export master ^next
reset refs/heads/next
from :0
Use revs->cmdline instead of revs->pending to iterate over the rev-list
arguments, checking the UNINTERESTING flag bit to distinguish between
positive (master, --all, etc) and negative (next.., --not --all, etc)
revs and avoid enqueueing negative revs in extra_revs.
This does not affect revs that were excluded from the revision walk
because pointed to by a mark, since those use the SHOWN bit on the
commit object itself and not UNINTERESTING on the rev_cmdline_entry.
A patch meeting the above description would make perfect sense to me.
Except for the somewhat strange testcase, the patch I am replying to
would also be fine in the short term, as long as it had an analagous
description (i.e., with an appropriate replacement for the
second-to-last paragraph).
Thanks for your patience, and hoping that helps,
Jonathan
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html