Re: [PATCH] graph API: Added logic for colored edges
From: Allan Caffee <hidden>
Date: 2016-06-15 22:46:35
On Thu, 09 Apr 2009, Teemu Likonen wrote:
On 2009-04-07 14:57 (-0400), Allan Caffee wrote:quoted
Modified the graph drawing logic to colorize edges based on parent-child relationships similiarly to gitk.I like the colored graph very much, thanks. Unfortunately there are some problems with aligning of log messages and headers. For example, try this in git.git repository: $ git log -1 --graph 796b137 * commit 796b13781aecce551b8f92049a66646e60f31dce |\ Merge: 6da14ee db12d97 | | Author: Junio C Hamano [off-list ref] | | Date: 2009-04-08 23:41:27 -0700 Without colors or without your patch the alignment is correct: $ git log -1 --graph --no-color 796b137 * commit 796b13781aecce551b8f92049a66646e60f31dce |\ Merge: 6da14ee db12d97 | | Author: Junio C Hamano [off-list ref] | | Date: 2009-04-08 23:41:27 -0700 (Perhaps the "Merge:" header could have two spaces befor the data, but this is unrelated to --graph.)
Thanks for the feedback! The problem here is that graph_horizontal_padding was counting the number of characters in the strbuf in order to decide how much whitespace to pad the row with. The ANSI escape sequences for colors and attributes are not printable characters but do contribute to the length of the strbuf. This can be fixed by adding a new function that counts only printing characters/spaces. I'll include this in my next round.