Re: [RFC/PATCH] graph API: Use horizontal lines for more compact graphs

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

 



On Mon, Apr 20, 2009 at 8:56 PM, Johannes Schindelin
<Johannes.Schindelin@xxxxxx> wrote:
> Hi,
>
> On Mon, 20 Apr 2009, Allan Caffee wrote:
>
>> diff --git a/graph.c b/graph.c
>> index d4571cf..597e545 100644
>> --- a/graph.c
>> +++ b/graph.c
>> @@ -47,20 +47,6 @@ static void graph_show_strbuf(struct git_graph *graph, struct strbuf const *sb);
>>   * - Limit the number of columns, similar to the way gitk does.
>>   *   If we reach more than a specified number of columns, omit
>>   *   sections of some columns.
>> - *
>> - * - The output during the GRAPH_PRE_COMMIT and GRAPH_COLLAPSING states
>> - *   could be made more compact by printing horizontal lines, instead of
>> - *   long diagonal lines.  For example, during collapsing, something like
>> - *   this:          instead of this:
>> - *   | | | | |      | | | | |
>> - *   | |_|_|/       | | | |/
>> - *   |/| | |        | | |/|
>> - *   | | | |        | |/| |
>> - *                  |/| | |
>> - *                  | | | |
>> - *
>> - *   If there are several parallel diagonal lines, they will need to be
>> - *   replaced with horizontal lines on subsequent rows.
>
> I like it!

:) Good!

>> +                             for (j = (target * 2)+3; j < (i - 2); j += 2)
>
> This (target*2)+3 is a bit too magical for me to understand.  But maybe I
> am just too tired?

It is a little magical.  Here target is an index into
graph->new_columns so we double that to get the actual location of the
edge in the string for this line.  So if we take the example that was
in the original TODO:

t(c)
|  t(c) + 3 (i.e. the first horizontal edge)
|  |
v..v    c
| | | | |
| |_|_|/
|/| | |
| | | |

Where c is the "horizontal_edge", t(c) is the target of the
"horizontal_edge" and t(c) + 3 is the location of the first horizontal
segment.  And then of course the += 2 is because we don't want to
change the mappings of the existing vertical edges.  This could really
probably use a comment (suggestions welcome).

Hope that clears things up,
~Allan
--
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]