From: Steven Grimm Date: Mon, 20 Aug 2007 03:36:38 GMT Subject: [PATCH] Document what the stage numbers in the :$n:path syntax mean. Message-ID: <46C90C46.1030000@midwinter.com> In-Reply-To: <7vps1paceh.fsf@assigned-by-dhcp.cox.net> Junio C Hamano wrote: > People should learn this command. Really. > > $ git cat-file -p :$n:path > > where $n == 2 is ours, $n == 1 is common ancestor, and $n == 3 > is theirs. The git-rev-parse manpage talks about the :$n:path notation (buried deep in a list of other syntax) but it just says $n is a "stage number" -- someone who is not familiar with the internals of git's merge implementation is never going to be able to figure out that "1", "2", and "3" mean what Junio said. --- Not sure if this is correct for octopus merges -- corrections welcome. Documentation/git-rev-parse.txt | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt index 4b4d229..4758c33 100644 --- a/Documentation/git-rev-parse.txt +++ b/Documentation/git-rev-parse.txt @@ -215,7 +215,10 @@ blobs contained in a commit. * A colon, optionally followed by a stage number (0 to 3) and a colon, followed by a path; this names a blob object in the index at the given path. Missing stage number (and the colon - that follows it) names an stage 0 entry. + that follows it) names an stage 0 entry. During a merge, stage + 1 is the common ancestor, stage 2 is the target branch's version + (typically the current branch), and stage 3 is the version from + the branch being merged. Here is an illustration, by Jon Loeliger. Both node B and C are a commit parents of commit node A. Parent commits are ordered -- 1.5.3.rc2.4.g726f9