[PATCH 0/2] Fix output of "git log --graph --boundary"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These two patches fix the graph output when --boundary is used.  They
apply on top of a merge of my recent fixes for handling uninteresting
commits (since they use the new graph_is_interesting() function I
added), and Dscho's "--graph --left-right" changes (since these changes
also need the struct rev_info).

There were two small conflicts when merging Dscho's and my changes.
I've including a merge diff below showing how I resolved them.


Adam Simpkins (2):
  Fix output of "git log --graph --boundary"
  get_revision(): honor the topo_order flag for boundary commits

 graph.c    |   87 ++++++++++++++++++++++++++++++++++++++++-------------------
 revision.c |   75 ++++++++++++++++++++++++++++++++++++++++-----------
 2 files changed, 117 insertions(+), 45 deletions(-)


8acd45e94a0d42a0ceb164e294049104e0c0f663
diff --cc graph.c
index ba9ede0,85a9ba0..479035d
--- a/graph.c
+++ b/graph.c
@@@ -55,11 -55,13 +55,15 @@@ struct git_graph 
  	 */
  	struct commit *commit;
  	/*
+ 	 * For the --left-right option.
+ 	 */
+ 	struct rev_info *revs;
+ 	/*
 -	 * The number of parents this commit has.
 -	 * (Stored so we don't have to walk over them each time we need
 -	 * this number)
 +	 * The number of interesting parents that this commit has.
 +	 *
 +	 * Note that this is not the same as the actual number of parents.
 +	 * This count excludes parents that won't be printed in the graph
 +	 * output, as determined by graph_is_interesting().
  	 */
  	int num_parents;
  	/*
@@@ -565,18 -545,14 +570,28 @@@ void graph_output_commit_line(struct gi
  
  		if (col_commit == graph->commit) {
  			seen_this = 1;
 +			/*
- 			 * If the commit is a merge, print 'M'.  Otherwise,
- 			 * print '*'.
++			 * If revs->left_right is set, print the '<' or '>'
++			 * depending on which side this commit came from.
++			 *
++			 * If revs->left_right is not set and the commit is
++			 * a merge, print 'M'.  Otherwise, print '*'.
 +			 *
 +			 * Note that we don't check graph->num_parents to
 +			 * determine if the commit is a merge, since that
 +			 * only tracks the number of "interesting" parents.
 +			 * We want to print 'M' for merge commits even if
 +			 * they have less than 2 interesting parents.
 +			 */
- 			if (graph->commit->parents != NULL &&
- 			    graph->commit->parents->next != NULL)
+ 			if (graph->revs && graph->revs->left_right) {
+ 				if (graph->commit->object.flags
+ 						& SYMMETRIC_LEFT)
+ 					strbuf_addch(sb, '<');
+ 				else
+ 					strbuf_addch(sb, '>');
+ 			}
 -			else if (graph->num_parents > 1)
++			else if (graph->commit->parents != NULL &&
++				 graph->commit->parents->next != NULL)
  				strbuf_addch(sb, 'M');
  			else
  				strbuf_addch(sb, '*');
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux