[PATCH 4/4] git log: Updated --graph to work even when the commit list is pruned

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

 



Signed-off-by: Adam Simpkins <adam@xxxxxxxxxxxxxxxx>
---
 graph.c    |   22 +++++++++++++++-------
 revision.c |    3 ---
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/graph.c b/graph.c
index e6d1d3a..be4000f 100644
--- a/graph.c
+++ b/graph.c
@@ -1,6 +1,8 @@
 #include "cache.h"
 #include "commit.h"
 #include "graph.h"
+#include "diff.h"
+#include "revision.h"
 
 /*
  * TODO:
@@ -174,17 +176,24 @@ static void graph_ensure_capacity(struct git_graph *graph, int num_columns)
 
 static void graph_insert_into_new_columns(struct git_graph *graph,
 					  struct commit *commit,
-					  int mapping_index)
+					  int *mapping_index)
 {
 	int i;
 
 	/*
+	 * Ignore uinteresting and pruned commits
+	 */
+	if (commit->object.flags & (UNINTERESTING | TREESAME))
+		return;
+
+	/*
 	 * If the commit is already in the new_columns list, we don't need to
 	 * add it.  Just update the mapping correctly.
 	 */
 	for (i = 0; i < graph->num_new_columns; ++i) {
 		if (graph->new_columns[i].commit == commit) {
-			graph->mapping[mapping_index] = i;
+			graph->mapping[*mapping_index] = i;
+			*mapping_index += 2;
 			return;
 		}
 	}
@@ -193,7 +202,8 @@ static void graph_insert_into_new_columns(struct git_graph *graph,
 	 * This commit isn't already in new_columns.  Add it.
 	 */
 	graph->new_columns[graph->num_new_columns].commit = commit;
-	graph->mapping[mapping_index] = graph->num_new_columns;
+	graph->mapping[*mapping_index] = graph->num_new_columns;
+	*mapping_index += 2;
 	++graph->num_new_columns;
 }
 
@@ -266,13 +276,11 @@ static void graph_update_columns(struct git_graph *graph)
 			     parent = parent->next) {
 				graph_insert_into_new_columns(graph,
 							      parent->item,
-							      mapping_idx);
-				mapping_idx += 2;
+							      &mapping_idx);
 			}
 		} else {
 			graph_insert_into_new_columns(graph, col_commit,
-						      mapping_idx);
-			mapping_idx += 2;
+						      &mapping_idx);
 		}
 	}
 
diff --git a/revision.c b/revision.c
index 6c9622c..6a1f513 100644
--- a/revision.c
+++ b/revision.c
@@ -1410,9 +1410,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
 	if (revs->reflog_info && revs->graph)
 		die("cannot combine --walk-reflogs with --graph");
 
-	if (revs->graph && revs->prune_data)
-		die("cannot use --graph when pruning commit list");
-
 	return left;
 }
 
-- 
1.5.3.6

--
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