From: Paul Mackerras <paulus@samba.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: git@vger.kernel.org
Subject: Re: gitk-1.0 released
Date: Fri, 20 May 2005 08:32:21 +1000	[thread overview]
Message-ID: <17037.5109.556362.904185@cargo.ozlabs.ibm.com> (raw)
In-Reply-To: <20050519132411.GA29111@elte.hu>
Ingo Molnar writes:
> very nice! Works well and it's pretty fast on a 2GHz P4.
I'm glad you like it. :)
> The "Octopus merge ..." text is incorrectly overlayed with a graph line.
The patch below fixes that.
> - i guess this one is on your todo list: the history graph of a single
>   object (file).
Yes.  I was hoping that git-rev-tree would grow an option to do the
necessary selection of commits and produce a simplified graph.  I
could do it in Tcl but it's probably better done in C.
> - first window appearance on an uncached repository can be pretty slow 
>   due to disk seeks - so it might make sense to display something (an 
>   hourglass?) sooner - when i first started it i thought it hung. On 
>   already cached repositories the window comes up immediately, and the 
>   list of commits is updated dynamically.
The problem is that git-rev-tree HEAD doesn't output anything until it
has read all the relevant commits, which can involve a lot of disk
seeks.  I put the "Reading commits..." message in to indicate that
something was happening, but your hourglass cursor suggestion is a
good one.  It looks like git-rev-list might be better suited to what I
want, actually.
> (and the biggest missing feature of GIT right now is author + 
> last-commit annotated file viewing which could be integrated into gitk 
> a'ka BK's revtool: selecting a given line of the file would bring one to 
> that commit, etc.)
Yes, indeed.  I'll have to think about how to do it in a responsive
fashion, since getting the necessary information involves reading all
the commits and all the tree objects back to the beginning of time,
AFAICS.  Gitk currently only reads the tree objects when you select a
commit, and it does that asynchronously; when you select a commit, it
immediately displays the commit message and starts a git-diff-tree
process.  When the output from git-diff-tree arrives, it updates the
listbox and then (if you haven't selected another commit in the
meantime) starts a git-diff-tree -p to get the diff.  As the output
from git-diff-tree arrives, it is colorized and placed in the details
window.  That's why you can let the up or down key autorepeat and gitk
doesn't get hopelessly behind.
Another thing I want to do is find a way to display the deleted lines
in the annotated file listing.  One thing I found quite frustrating
with bk revtool was trying to find which changeset deleted some
particular lines of code.  I was basically reduced to binary searching
through the changesets - and with a large source file, just finding
the place to check in the annotated listing for each changeset was
time-consuming and error-prone in itself.
Paul.
diff -urN gitk-1.0/gitk gitk
--- gitk-1.0/gitk	2005-05-20 08:17:18.000000000 +1000
+++ gitk	2005-05-20 08:09:38.000000000 +1000
@@ -563,6 +563,9 @@
 		   -fill $ofill -outline black -width 1]
 	$canv raise $t
 	set xt [expr $canvx0 + $nlines * $linespc]
+	if {$nparents($id) > 2} {
+	    set xt [expr {$xt + ($nparents($id) - 2) * $linespc}]
+	}
 	set headline [lindex $commitinfo($id) 0]
 	set name [lindex $commitinfo($id) 1]
 	set date [lindex $commitinfo($id) 2]
next prev parent reply	other threads:[~2005-05-19 22:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-19 13:05 gitk-1.0 released Paul Mackerras
2005-05-19 13:24 ` Ingo Molnar
2005-05-19 13:30   ` Ingo Molnar
2005-05-19 22:32   ` Paul Mackerras [this message]
2005-05-20 11:22     ` Ingo Molnar
2005-05-20 11:33     ` Ingo Molnar
2005-05-20 18:18     ` Kari Hameenaho
2005-05-20 19:07       ` Linus Torvalds
2005-05-21  6:40         ` Jon Seymour
2005-05-21 16:35           ` Linus Torvalds
2005-05-19 23:13 ` Benjamin Herrenschmidt
2005-05-20  4:55   ` Frank Sorenson
2005-05-20  1:10 ` walt
2005-05-28 11:47 ` Ingo Molnar
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=17037.5109.556362.904185@cargo.ozlabs.ibm.com \
    --to=paulus@samba.org \
    --cc=git@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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).