git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/5] Documentation/rev-list-options.txt: Explain --ancestry-path

From
Johan Herland <johan@herland.net>
Date
Jun 3, 2010, 23:17 UTC
Message-ID
<1275607057-26645-4-git-send-email-johan@herland.net>
In-Reply-To
<1275607057-26645-1-git-send-email-johan@herland.net>

Add a short paragraph explaining --ancestry-path, followed by a more detailed example. This mirrors how the other history simplification options are documented.

Signed-off-by: Johan Herland <johan@herland.net>
---
 Documentation/rev-list-options.txt |   50 ++++++++++++++++++++++++++++++++++-
 1 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index 81815e1..a33dd00 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -384,6 +384,14 @@ Default mode::
 	merges from the resulting history, as there are no selected
 	commits contributing to this merge.

+--ancestry-path::
+
+	When given a range of commits to display (e.g. 'commit1..commit2'
+	or 'commit2 {caret}commit1'), only display commits that exist
+	directly on the ancestry chain between the 'commit1' and
+	'commit2', i.e. commits that are both descendants of 'commit1',
+	and ancestors of 'commit2'.
+
 A more detailed explanation follows.

 Suppose you specified `foo` as the <paths>.  We shall call commits
@@ -511,8 +519,6 @@ Note that without '\--full-history', this still simplifies merges: if
 one of the parents is TREESAME, we follow only that one, so the other
 sides of the merge are never walked.

-Finally, there is a fourth simplification mode available:
-
 --simplify-merges::

 	First, build a history graph in the same way that
@@ -554,6 +560,46 @@ Note the major differences in `N` and `P` over '\--full-history':
   removed completely, because it had one parent and is TREESAME.
 --

+Finally, there is a fifth simplification mode available:
+
+--ancestry-path::
+
+	Limit the displayed commits to those directly on the ancestry
+	chain between the "from" and "to" commits in the given commit
+	range. I.e. only display commits that are ancestor of the "to"
+	commit, and descendants of the "from" commit.
++
+As an example use case, consider the following commit history:
++
+-----------------------------------------------------------------------
+	    D---E-------F
+	   /     \       \
+	  B---C---G---H---I---J
+	 /                     \
+	A-------K---------------L--M
+-----------------------------------------------------------------------
++
+A regular 'D..M' computes the set of commits that are ancestors of `M`,
+but excludes the ones that are ancestors of `D`. This is useful to see
+what happened to the history leading to `M` since `D`, in the sense
+that "what does `M` have that did not exist in `D`". The result in this
+example would be all the commits, except `A` and `B` (and `D` itself,
+of course).
++
+When we want to find out what commits in `M` are contaminated with the
+bug introduced by `D` and need fixing, however, we might want to view
+only the subset of 'D..M' that are actually descendants of `D`, i.e.
+excluding `C` and `K`. This is exactly what the '\--ancestry-path'
+option does. Applied to the 'D..M' range, it results in:
++
+-----------------------------------------------------------------------
+	        E-------F
+	         \       \
+	          G---H---I---J
+	                       \
+	                        L--M
+-----------------------------------------------------------------------
+
 The '\--simplify-by-decoration' option allows you to view only the
 big picture of the topology of the history, by omitting commits
 that are not referenced by tags.  Commits are marked as !TREESAME
--
1.7.0.4
Previous: Johan HerlandNext: Johan Herland
Message 4 of 6 in “revision: --ancestry-path, take 2”
  1. 0/5 revision: --ancestry-path, take 2Johan Herland, Jun 3, 2010
  2. 1/5 Documentation/rev-list-options.txt: Fix missing line in example history graphJohan Herland, Jun 3, 2010
  3. 2/5 revision: --ancestry-pathJohan Herland, Jun 3, 2010
  4. 3/5 Documentation/rev-list-options.txt: Explain --ancestry-pathJohan Herland, Jun 3, 2010
  5. 4/5 revision: Fix typo in --ancestry-path error messageJohan Herland, Jun 3, 2010
  6. 5/5 revision: Turn off history simplification in --ancestry-path modeJohan Herland, Jun 3, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.