<date> <commit>:<flags> [<parent-commit>:<flags> ]\*
git-rev-tree - Provides the revision tree for one or more commits
git-rev-tree [--edges] [--cache <cache-file>] []<commit> [[]<commit>]
Provides the revision tree for one or more commits.
Show edges (ie places where the marking changes between parent and child)
Use the specified file as a cache from a previous git-rev-list run to speed things up. Note that this "cache" is totally different concept from the directory index. Also this option is not implemented yet.
The commit id to trace (a leading caret means to ignore this commit-id and below)
<date> <commit>:<flags> [<parent-commit>:<flags> ]\*
Date in seconds since epoch
id of commit object
id of each parent commit object (>1 indicates a merge)
The flags are read as a bitmask representing each commit provided on the commandline. eg: given the command:
$ git-rev-tree <com1> <com2> <com3>
The output:
<date> <commit>:5
means that <commit> is reachable from <com1>(1) and <com3>(4)
A revtree can get quite large. "git-rev-tree" will eventually allow you to cache previous state so that you don't have to follow the whole thing down.
So the change difference between two commits is literally
git-rev-tree [commit-id1] > commit1-revtree
git-rev-tree [commit-id2] > commit2-revtree
join -t : commit1-revtree commit2-revtree > common-revisions
(this is also how to find the most common parent - you'd look at just the head revisions - the ones that aren't referred to by other revisions - in "common-revision", and figure out the best one. I think.)
Written by Linus Torvalds <torvalds@osdl.org>
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
Part of the git suite