On Tue, Aug 28, 2007 at 12:34:06AM -0700, Junio C Hamano wrote: > So let's fix (1) and (2) like this. Thank you!!! > +2. Generic <revision range> expression (see "SPECIFYING > + REVISIONS" section in gitlink:git-rev-parse[1]) means the > + commits in the specified range. A single commit, when > + interpreted as a <revision range> expression, means > + "everything that leads to that commit", but that is taken as > + the special case above. If you want to format everything > + since project inception to one commit, say "git format-patch > + \--root <that-commit>", as showing the root commit as patch > + requires \--root option anyway. Maybe the last sentence should be omitted? The fact that sometimes you need to specify --root is pretty well hidden as a plumbing-level option up until now, so what --root does is largely an impleementation detail that the average user doesn't need to know and would probably confuse him/her deeply anyway. (i.e., it's needed by git-diff-tree, but it's not needed by git-diff.) BTW, I'm probably missing some history here, but why isn't --root/rev->show_root_diff=1 the default? Why do we have the log.showroot config option; what are the circumstances when anyone would want to set log.showroot to 0? > if (rev.pending.nr == 1) { > - if (rev.max_count < 0) { > + if (rev.max_count < 0 && !rev.show_root_diff) { > + /* > + * This is traditional behaviour of "git format-patch > + * origin" that prepares what the origin side still > + * does not have. > + */ Thanks for adding that comment; for someone who is still trying to understand how the revision walker infrastructure works, it will be very helpful! - Ted - 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