From: "Marco Costalba" <mcostalba@gmail.com>
To: "Paul Mackerras" <paulus@samba.org>
Cc: "Linus Torvalds" <torvalds@linux-foundation.org>, git@vger.kernel.org
Subject: Re: New features in gitk
Date: Fri, 2 Nov 2007 13:44:05 +0100 [thread overview]
Message-ID: <e5bfff550711020544h1e9a648apfd268eb549645ccc@mail.gmail.com> (raw)
In-Reply-To: <18218.63946.772767.179841@cargo.ozlabs.ibm.com>
On 11/2/07, Paul Mackerras <paulus@samba.org> wrote:
>
> In any case, no that's not the only reason. The main reason is that
> it (i.e. --topo-order) spits out the commits in exactly the order that
> gitk wants to display them (of which the bit about parents coming
> after all their children is a part), and thus reduces the amount of
> processing I need to do in Tcl.
>
I have tried to overcome --topo-order in qgit but I found it very
difficult, too much for me.
Lazily drawing the layout it doesn't mean that you lazy load the data
from git, indeed you load all the git-log output as soon as it
arrives.
And if the revisions arrive "in order", i.e. if revision A arrive
before revision B it means that A is NOT an ancestor of B, this is of
great help.
When drawing the graph assuming that the vector/list of the arrived
sha is already ordered greatly simplify the whole thing, if we relax
this hypothesis then a lot of work should be done before to draw a
graph chunk, essentially the GUI tool needs to walk the _entire_ list
and reorder it by itself _before_ to draw any graph chunk also if very
small.
So at the end you end up transferring the complete revision walk from
git-log to the GUI tool, and (this is the important thing) to be sure
graph is always correct you need to perform the walk _before_ drawing
any stuff.
The only possible _trick_ I was able to find is to optimistically draw
the graph chunk _assuming_ that it is ordered.
Then reorder the list in the background and finally check if the graph
is correct, if not redraw with correct data.
If the out of order revisions are rare you end up mimic a fast correct
drawing. If are not user will see some flickering at the end of the
load.
IMHO the above scheme is very complicated and fragile.
Just my two cents.
Marco
next prev parent reply other threads:[~2007-11-02 12:46 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-28 1:39 New features in gitk Paul Mackerras
2007-10-28 5:34 ` Linus Torvalds
2007-10-28 7:11 ` Paul Mackerras
2007-10-28 7:36 ` Steffen Prohaska
2007-10-28 16:50 ` Linus Torvalds
2007-11-01 10:00 ` Paul Mackerras
2007-11-01 15:16 ` Linus Torvalds
2007-11-02 10:19 ` Paul Mackerras
2007-11-02 12:44 ` Marco Costalba [this message]
2007-11-02 15:42 ` Linus Torvalds
2007-11-02 16:50 ` Marco Costalba
2007-11-02 18:16 ` Linus Torvalds
2007-11-02 20:31 ` [PATCH 0/2] History replay support Linus Torvalds
2007-11-02 20:32 ` [PATCH 1/2] Simplify topo-sort logic Linus Torvalds
2007-11-02 20:35 ` [PATCH 2/2] Support "history replay" for git log commands Linus Torvalds
2007-11-02 21:05 ` Junio C Hamano
2007-11-02 21:17 ` Linus Torvalds
2007-11-03 1:40 ` [PATCH 0/2] History replay support Linus Torvalds
2007-11-03 7:56 ` Marco Costalba
2007-11-03 18:11 ` [REPLACEMENT PATCH 2/2] Add "--early-output" log flag for interactive GUI use Linus Torvalds
2007-11-03 19:52 ` Marco Costalba
2007-11-04 3:06 ` Paul Mackerras
2007-11-04 5:38 ` Linus Torvalds
2007-11-04 7:10 ` Paul Mackerras
2007-11-04 7:52 ` Marco Costalba
2007-11-04 18:11 ` Linus Torvalds
2007-11-04 20:12 ` [PATCH 3/2] Enhance --early-output format Linus Torvalds
2007-11-05 20:24 ` Junio C Hamano
2007-11-05 20:47 ` Linus Torvalds
2007-11-05 21:22 ` Linus Torvalds
2007-11-05 21:35 ` Linus Torvalds
2007-11-13 4:58 ` [PATCH 4/2] Fix parent rewriting in --early-output Linus Torvalds
2007-11-13 5:43 ` Junio C Hamano
2007-11-13 6:46 ` Linus Torvalds
2007-11-13 7:16 ` Linus Torvalds
2007-11-13 7:53 ` Sven Verdoolaege
2007-11-13 8:48 ` Junio C Hamano
2007-11-13 8:01 ` Shawn O. Pearce
2007-11-13 8:24 ` Junio C Hamano
2007-11-13 9:59 ` Paul Mackerras
2007-11-13 18:53 ` Junio C Hamano
2007-11-13 21:55 ` Paul Mackerras
2007-11-16 7:30 ` Marco Costalba
2007-11-04 0:32 ` [PATCH 0/2] History replay support Paul Mackerras
2007-11-02 18:17 ` New features in gitk Johannes Schindelin
2007-11-02 15:03 ` Linus Torvalds
2007-11-01 11:37 ` Paul Mackerras
2007-11-01 15:47 ` Linus Torvalds
2007-11-01 16:21 ` Linus Torvalds
2007-10-28 18:32 ` Pierre Habouzit
2007-10-28 18:38 ` Mike Hommey
2007-10-28 23:13 ` Paul Mackerras
2007-10-29 6:20 ` Pierre Habouzit
2007-10-29 8:31 ` Jonathan del Strother
2007-10-29 6:24 ` Pierre Habouzit
2007-10-29 13:30 ` Han-Wen Nienhuys
2007-10-29 14:04 ` Michele Ballabio
-- strict thread matches above, loose matches on Subject: below --
2005-06-27 22:22 new " Paul Mackerras
2005-06-27 22:49 ` Luc Van Oostenryck
2005-06-27 23:36 ` Paul Mackerras
2005-06-28 20:24 ` Luc Van Oostenryck
2005-06-28 1:21 ` Linus Torvalds
2005-06-28 23:41 ` Paul Mackerras
2005-06-28 6:22 ` Greg KH
2005-06-30 6:20 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e5bfff550711020544h1e9a648apfd268eb549645ccc@mail.gmail.com \
--to=mcostalba@gmail.com \
--cc=git@vger.kernel.org \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).