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

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

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 19, 2009, 06:25 UTC
Message-ID
<7v4os41frm.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vhbw41g3f.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 31 quoted lines
> Adam Simpkins <simpkins@facebook.com> writes:
>
>> -enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit)
>> +enum commit_action get_commit_action(struct rev_info *revs, struct commit *commit)
>>  {
>>  	if (commit->object.flags & SHOWN)
>>  		return commit_ignore;
>> @@ -1692,12 +1692,21 @@ enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit)
>>  			if (!commit->parents || !commit->parents->next)
>>  				return commit_ignore;
>>  		}
>> -		if (want_ancestry(revs) && rewrite_parents(revs, commit) < 0)
>> -			return commit_error;
>>  	}
>>  	return commit_show;
>>  }
>>  
>> +enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit)
>> +{
>> +	enum commit_action action = get_commit_action(revs, commit);
>> +
>> +	if (action == commit_show && revs->prune && revs->dense && want_ancestry(revs)) {
>> +		if (rewrite_parents(revs, commit) < 0)
>> +			return commit_error;
>> +	}
>> +	return action;
>> +}
>
> When simplify_commit() logic (now called get_comit_action()) decides to
> show this commit because revs->show_all was specified, we did not rewrite
> its parents, but now we will?
That is, here is what I meant...
 revision.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/revision.c b/revision.c
index 15a2010..efa3b7c 100644
--- a/revision.c
+++ b/revision.c
@@ -1700,7 +1700,9 @@ enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit)
 {
 	enum commit_action action = get_commit_action(revs, commit);
 
-	if (action == commit_show && revs->prune && revs->dense && want_ancestry(revs)) {
+	if (action == commit_show &&
+	    !revs->show_all &&
+	    revs->prune && revs->dense && want_ancestry(revs)) {
 		if (rewrite_parents(revs, commit) < 0)
 			return commit_error;
 	}

We may want to add some tests to demonstrate the breakage this fix
addresses.
Previous: Junio C HamanoNext: Adam Simpkins
Message 7 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.