From: Linus Torvalds Date: Fri, 10 Mar 2006 03:56:20 GMT Subject: Re: git-rev-list feature request Message-ID: In-Reply-To: <17424.53563.622642.738307@cargo.ozlabs.ibm.com> On Fri, 10 Mar 2006, Paul Mackerras wrote: > > It would be nice also to be able to combine that with the existing > ability to output a dense graph containing the commits that modify a > specified set of files or directories. > > In other words, I would like to be able to select any combination of > (a) some explicitly specified commits > (b) commits that have a reference > (c) commits that affect specified files or directories > > and have git-rev-list output a graph that shows the relationship of > those commits. > > Possible? Yeah. I _think_ what you want is - phase 1: generate the current graph that we already do for git-rev-list --all ^cmit - phase 2: start at "cmit", and mark everything that refers to it as "show me" (including "cmit" itself, which was originally marked uninteresting) So phase 1 already exists and was the hard part. phase 2 is just walking the graph (that is now all in memory) from "cmit" using the "object->refs" reverse references that got built up during phase 1. The only question is how to show the ref-names, or, more properly, what to do when we have a ref-name, but the commit it points to wasn't interesting because it didn't change the set of files we used to determine interest... And where to find the sucker^H^H^H^H^H^Hhelpful soul to actually do the work. Linus