git-rev-tree(1) Manual Page

NAME

git - rev-tree - Provides the revision tree for one or more commits

SYNOPSIS

git-rev-tree [—edges] [—cache <cache-file>] []<commit> [[]<commit>]

DESCRIPTION

Provides the revision tree for one or more commits.

OPTIONS

—edges
Show edges (ie places where the marking changes between parent and child)
—cache <cache-file>
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.
[^]<commit>
The commit id to trace (a leading caret means to ignore this commit-id and below)

Output

<date> <commit>:<flags> [<parent-commit>:<flags> ]\*
<date>
Date in seconds since epoch
<commit>
id of commit object
<parent-commit>
id of each parent commit object (>1 indicates a merge)
<flags>
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.)

Author

Written by Linus Torvalds <torvalds@osdl.org>

Documentation

Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT

Part of the git(7) suite