summaryrefslogtreecommitdiff
path: root/graph.c
diff options
context:
space:
mode:
authorAdam Simpkins <adam@adamsimpkins.net>2008-05-25 00:07:21 -0700
committerJunio C Hamano <gitster@pobox.com>2008-05-25 12:06:52 -0700
commit7528f27dd677bed65d758667a621034b853595b4 (patch)
tree797d4b938da70fa66485546886c4839315f9933d /graph.c
parent37a75abc985a25a0612c2c176ed35d438722752d (diff)
downloadgit-7528f27dd677bed65d758667a621034b853595b4.tar.gz
log --graph --left-right: show left/right information in place of '*'
With the --graph option, the graph already outputs 'o' instead of '*' for boundary commits. Make it emit '<' or '>' when --left-right is specified. (This change also disables the '^' prefix for UNINTERESTING commits. The graph code currently doesn't print anything special for these commits, since it assumes no UNINTERESTING, non-BOUNDARY commits are displayed. This is potentially a bug if UNINTERESTING non-BOUNDARY commits can actually be displayed via some code path.) [jc: squashed the left-right change from Dscho and Adam's fixup into one] Signed-off-by: Adam Simpkins <adam@adamsimpkins.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'graph.c')
-rw-r--r--graph.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/graph.c b/graph.c
index add7e4477d..dc2c1ec5d7 100644
--- a/graph.c
+++ b/graph.c
@@ -54,6 +54,8 @@ struct git_graph {
* The commit currently being processed
*/
struct commit *commit;
+ /* The rev-info used for the current traversal */
+ struct rev_info *revs;
/*
* The number of interesting parents that this commit has.
*
@@ -127,10 +129,11 @@ struct git_graph {
int *new_mapping;
};
-struct git_graph *graph_init(void)
+struct git_graph *graph_init(struct rev_info *opt)
{
struct git_graph *graph = xmalloc(sizeof(struct git_graph));
graph->commit = NULL;
+ graph->revs = opt;
graph->num_parents = 0;
graph->expansion_row = 0;
graph->state = GRAPH_PADDING;
@@ -565,16 +568,13 @@ void graph_output_commit_line(struct git_graph *graph, struct strbuf *sb)
if (col_commit == graph->commit) {
seen_this = 1;
- /*
- * If the commit has more than 1 interesting
- * parent, print 'M' to indicate that it is a
- * merge. Otherwise, print '*'.
- *
- * Note that even if this is actually a merge
- * commit, we still print '*' if less than 2 of its
- * parents are interesting.
- */
- if (graph->num_parents > 1)
+
+ 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)
strbuf_addch(sb, 'M');
else
strbuf_addch(sb, '*');