On Wed, Jan 15, 2014 at 12:26:13PM -0800, Junio C Hamano wrote: > With the previous fix 895c5ba3 (revision: do not peel tags used in > range notation, 2013-09-19), handle_revision_arg() that processes > command line arguments for the "git log" family of commands no > longer directly places the object pointed by the tag in the pending > object array when it sees a tag object. We used to place pointee > there after copying the flag bits like UNINTERESTING and > SYMMETRIC_LEFT. > > This change meant that any flag that is relevant to later history > traversal must now be propagated to the pointed objects (most often > these are commits) while starting the traversal, which is partly > done by handle_commit() that is called from prepare_revision_walk(). > We did propagate UNINTERESTING, but did not do so for others, most > notably SYMMETRIC_LEFT. This caused "git log --left-right v1.0..." > (where "v1.0" is a tag) to start losing the "leftness" from the > commit the tag points at. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- Looks good to me. As per my previous mail, I _think_ you could squash in: diff --git a/revision.c b/revision.c index f786b51..2db906c 100644 --- a/revision.c +++ b/revision.c @@ -316,13 +316,10 @@ static struct commit *handle_commit(struct rev_info *revs, * Blob object? You know the drill by now.. */ if (object->type == OBJ_BLOB) { - struct blob *blob = (struct blob *)object; if (!revs->blob_objects) return NULL; - if (flags & UNINTERESTING) { - mark_blob_uninteresting(blob); + if (flags & UNINTERESTING) return NULL; - } add_pending_object(revs, object, ""); return NULL; } but that is not very much code reduction (and mark_blob_uninteresting is very cheap). So it may not be worth the risk that my analysis is wrong. :) -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html