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

[PATCH] graph API: fix bug in graph_is_interesting()

From
ASAdam Simpkins <simpkins@facebook.com>
Date
Aug 18, 2009, 21:18 UTC
Message-ID
<20090818211812.GL8147@facebook.com>
In-Reply-To
<1250628954.114121983@192.168.1.201>

Updated graph_is_interesting() to use simplify_commit() to determine if a commit is interesting, just like get_revision() does. Previously, it would sometimes incorrectly treat an interesting commit as uninteresting. This resulted in incorrect lines in the graph output.

This problem was reported by Santi Béjar. The following command would exhibit the problem before, but now works correctly:

  git log --graph --simplify-by-decoration --oneline v1.6.3.3

Previously git graph did not display the output for this command correctly between f29ac4f and 66996ec, among other places.

Signed-off-by: Adam Simpkins <simpkins@facebook.com>
---

Note that simplify_commit() may modify the revision list. Calling it in graph_is_interesting() can modify the revision list earlier than it otherwise would be (in get_revision()). I don't think this should cause any problems, but figured I'd point it out in case anyone more familiar with the code thinks otherwise.

 graph.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/graph.c b/graph.c
index e466770..ea21e91 100644
--- a/graph.c
+++ b/graph.c
@@ -286,9 +286,10 @@ static int graph_is_interesting(struct git_graph *graph, struct commit *commit)
 	}
 
 	/*
-	 * Uninteresting and pruned commits won't be printed
+	 * Otherwise, use simplify_commit() to see if this commit is
+	 * interesting
 	 */
-	return (commit->object.flags & (UNINTERESTING | TREESAME)) ? 0 : 1;
+	return simplify_commit(graph->revs, commit) == commit_show;
 }
 
 static struct commit_list *next_interesting_parent(struct git_graph *graph,
-- 
1.6.4.314.ge5db
Previous: Adam SimpkinsNext: Junio C Hamano
Message 2 of 14 in “RE: interaction between --graph and --simplify-by-decoration”
  1. Adam SimpkinsAug 18, 2009
  2. graph API: fix bug in graph_is_interesting()Adam Simpkins, Aug 18, 2009
  3. Junio C HamanoAug 18, 2009
  4. Adam SimpkinsAug 19, 2009
  5. Adam SimpkinsAug 19, 2009
  6. Junio C HamanoAug 19, 2009
  7. Junio C HamanoAug 19, 2009
  8. Adam SimpkinsAug 19, 2009
  9. Add test case for rev-list --parents --show-allAdam Simpkins, Aug 19, 2009
  10. Junio C HamanoAug 20, 2009
  11. Add tests for rev-list --graph with options that simplify historyAdam Simpkins, Aug 21, 2009
  12. Junio C HamanoAug 21, 2009
  13. Adam SimpkinsAug 21, 2009
  14. Santi BéjarAug 21, 2009

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.