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

[PATCH] graph API: fix extra space during pre_commit_line state

From
Allan Caffee <allan.caffee@gmail.com>
Date
Apr 21, 2009, 18:34 UTC
Message-ID
<20090421183412.GA8499@linux.vnet>
In-Reply-To
<87zlea9lit.fsf_-_@iki.fi>

An extra space is being inserted between the "commit" column and all of the successive edges. Remove this space. This regression was introduced by 427fc5b.

Signed-off-by: Allan Caffee <allan.caffee@gmail.com>
---
 graph.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
On Tue, 21 Apr 2009, Teemu Likonen wrote:
Show 23 quoted lines
> The colored log graph implementation (commit 427fc5b) introduces an
> alignment bug which looks like this:
> 
> | | * | edf2e37 git-apply: work from subdirectory.
> | | * | 4ca0660 working from subdirectory: preparation
> | |  | |        
> | |   \ \       
> | |    \ \      
> | |     \ \     
> | |      \ \    
> | |       \ \   
> | *-----. \ \   5401f30 Merge branches 'jc/apply', 'lt/ls-tree', [...]
> | |\ \ \ \ \ \  
> | | | | | * | | 0501c24 Tutorial: adjust merge example to recursive [...]
> 
> 
> In other words, the diagonal lines after this octopus merge are aligned
> wrong. To see it yourself type
> 
>     git log --graph --oneline a957207
> 
> in the Git repository and scroll the output down a bit. Note that the
> bug exists with both --color _and_ --no-color.

It's actually the lines before the merge that are shifted to the right by one. This patch should fix that.

This issue exposes a gap in the existing test coverage, which doesn't exercise the pre_commit_line code. Maybe another patch is in order to extend t4202-log to cover pre-commit lines and octopus merges.

diff --git a/graph.c b/graph.c
index d4571cf..31e09eb 100644
--- a/graph.c
+++ b/graph.c
@@ -727,8 +727,8 @@ static void graph_output_pre_commit_line(struct git_graph *graph,
 		if (col->commit == graph->commit) {
 			seen_this = 1;
 			strbuf_write_column(sb, col, '|');
-			strbuf_addf(sb, " %*s", graph->expansion_row, "");
-			chars_written += 2 + graph->expansion_row;
+			strbuf_addf(sb, "%*s", graph->expansion_row, "");
+			chars_written += 1 + graph->expansion_row;
 		} else if (seen_this && (graph->expansion_row == 0)) {
 			/*
 			 * This is the first line of the pre-commit output.
-- 
1.5.6.3
Previous: Teemu LikonenNext: Teemu Likonen
Message 8 of 17 in “graph API: Use horizontal lines for more compact graphs”
  1. graph API: Use horizontal lines for more compact graphsAllan Caffee, Apr 21, 2009
  2. Johannes SchindelinApr 21, 2009
  3. Allan CaffeeApr 21, 2009
  4. Johannes SchindelinApr 21, 2009
  5. graph API: Use horizontal lines for more compact graphsAllan Caffee, Apr 21, 2009
  6. Johannes SchindelinApr 21, 2009
  7. Bug in colored "log --graph" implementationTeemu Likonen, Apr 21, 2009
  8. graph API: fix extra space during pre_commit_line stateAllan Caffee, Apr 21, 2009
  9. Teemu LikonenApr 22, 2009
  10. Allan CaffeeApr 22, 2009
  11. 2/3 graph API: fix extra space during pre_commit_line stateAllan Caffee, Apr 22, 2009
  12. 1/3 t4202-log: extend test coverage of graphingAllan Caffee, Apr 22, 2009
  13. 2/3 graph API: fix extra space during pre_commit_line stateAllan Caffee, Apr 22, 2009
  14. 3/3 graph API: fix a bug in the rendering of octopus mergesAllan Caffee, Apr 22, 2009
  15. Allan CaffeeApr 22, 2009
  16. graph API: Use horizontal lines for more compact graphsAllan Caffee, Apr 27, 2009
  17. Junio C HamanoApr 27, 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.