Merge branch 'maint'
authorJunio C Hamano <junkio@cox.net>
Wed, 17 May 2006 00:21:02 +0000 (17:21 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 17 May 2006 00:21:02 +0000 (17:21 -0700)
* maint:
  merge-base: Clarify the comments on post processing.
  Update the documentation for git-merge-base

Documentation/git-merge-base.txt
merge-base.c

index d1d56f1..6099be2 100644 (file)
@@ -8,16 +8,26 @@ git-merge-base - Finds as good a common ancestor as possible for a merge
 
 SYNOPSIS
 --------
-'git-merge-base' <commit> <commit>
+'git-merge-base' [--all] <commit> <commit>
 
 DESCRIPTION
 -----------
-"git-merge-base" finds as good a common ancestor as possible. Given a
-selection of equally good common ancestors it should not be relied on
-to decide in any particular way.
+
+"git-merge-base" finds as good a common ancestor as possible between
+the two commits. That is, given two commits A and B 'git-merge-base A
+B' will output a commit which is reachable from both A and B through
+the parent relationship.
+
+Given a selection of equally good common ancestors it should not be
+relied on to decide in any particular way.
 
 The "git-merge-base" algorithm is still in flux - use the source...
 
+OPTIONS
+-------
+--all::
+       Output all common ancestors for the two commits instead of
+       just one.
 
 Author
 ------
index f0dc06e..4856ca0 100644 (file)
@@ -82,8 +82,9 @@ static struct commit *interesting(struct commit_list *list)
  * commit B.
  *
  *
- * Another pathological example how this thing can fail to mark an ancestor
- * of a merge base as UNINTERESTING without the postprocessing phase.
+ * Another pathological example how this thing used to fail to mark an
+ * ancestor of a merge base as UNINTERESTING before we introduced the
+ * postprocessing phase (mark_reachable_commits).
  *
  *               2
  *               H
@@ -118,7 +119,9 @@ static struct commit *interesting(struct commit_list *list)
  *      D7                     2 3 7 7 3 2 1 2
  *      E7                     2 3 7 7 7 2 1 2
  *
- * and we end up showing E as an interesting merge base.
+ * and we ended up showing E as an interesting merge base.
+ * The postprocessing phase re-injects C and continues traversal
+ * to contaminate D and E.
  */
 
 static int show_all = 0;