Re: git-rev-list feature request
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Mar 10, 2006, 03:56 UTC
- Message-ID
- <Pine.LNX.4.64.0603091950360.18022@g5.osdl.org>
- In-Reply-To
- <17424.53563.622642.738307@cargo.ozlabs.ibm.com>
On Fri, 10 Mar 2006, Paul Mackerras wrote:
Show 14 quoted lines
> > 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