git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adam Simpkins <simpkins@facebook.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: "Santi Béjar" <santi@agolina.net>, "Junio C Hamano" <gitster@pobox.com>
Subject: [PATCH] graph API: fix bug in graph_is_interesting()
Date: Tue, 18 Aug 2009 14:18:12 -0700	[thread overview]
Message-ID: <20090818211812.GL8147@facebook.com> (raw)
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

  reply	other threads:[~2009-08-18 22:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-18 20:55 interaction between --graph and --simplify-by-decoration Adam Simpkins
2009-08-18 21:18 ` Adam Simpkins [this message]
2009-08-18 23:53   ` [PATCH] graph API: fix bug in graph_is_interesting() Junio C Hamano
2009-08-19  2:29     ` Adam Simpkins
2009-08-19  2:34       ` Adam Simpkins
2009-08-19  6:18         ` Junio C Hamano
2009-08-19  6:25           ` Junio C Hamano
2009-08-19 22:55             ` Adam Simpkins
2009-08-19 22:58               ` [PATCH] Add test case for rev-list --parents --show-all Adam Simpkins
2009-08-20  4:13                 ` Junio C Hamano
2009-08-21 18:20                   ` [PATCH] Add tests for rev-list --graph with options that simplify history Adam Simpkins
2009-08-21 20:15                     ` Junio C Hamano
2009-08-21 21:23                       ` Adam Simpkins
2009-08-21 15:39         ` [PATCH] graph API: fix bug in graph_is_interesting() Santi Béjar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090818211812.GL8147@facebook.com \
    --to=simpkins@facebook.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=santi@agolina.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).