From: "Marco Costalba" <mcostalba@gmail.com>
To: "Linus Torvalds" <torvalds@osdl.org>
Cc: "Junio C Hamano" <junkio@cox.net>, git@vger.kernel.org
Subject: Re: Possible --remove-empty bug
Date: Fri, 17 Mar 2006 11:57:38 +0100 [thread overview]
Message-ID: <e5bfff550603170257u21ee6583jabe5a6409cc40766@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0603131058270.3618@g5.osdl.org>
On 3/13/06, Linus Torvalds <torvalds@osdl.org> wrote:
>
> However, to be honest, the only reason to ever use --remove-empty is for
> rename detection, and Frederik's approach of doing that through the
> library interface directly is actually a much superior option. So we might
> as well drop the compilcation of --remove-empty entirely, unless somebody
> has already started using it.
>
In case of a rather recent file --remove-empty option gives a good
speed up in history loading with git-rev-list. So qgit uses that
option.
Annotation in qgit it is little different from blame algorithm because
it works from oldest revision to latest instead of the contrary. This
is due because it calculates in one pass _all_ the annotations of all
the different revisions of a given file, starting from file history,
i.e. 'git-rev-list file_path' output.
The GUI interface of qgit let's the user quickly jump between two file
revisions. So the corresponding annotations should be already prepared
to make it snappy.
> The _real_ optimization would be to make the pathname based pruning be
> done incrementally instead of having to build up the whole tree.
Anything that speeds-up file git-rev-list history loading surely gives
a big boost to all annotation/blame stuff. I have made some profiling
on qgit (the public git repo version that is much faster, not the
qgit1.1 released one) and I found that 50% to 70% of the time is spent
on git-rev-list, of the remaining the 80% is spent on git-diff-tree -p
patch loading and only a small amount is spent on actually calculate
the annotation.
Of course these numbers can vary a little according to file/repo, but
the big picture stays the same.
Marco
next prev parent reply other threads:[~2006-03-17 10:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-12 14:12 Possible --remove-empty bug Marco Costalba
2006-03-12 21:31 ` Junio C Hamano
2006-03-12 22:54 ` Linus Torvalds
2006-03-13 1:08 ` Junio C Hamano
2006-03-13 5:41 ` Junio C Hamano
2006-03-13 19:03 ` Linus Torvalds
2006-03-17 10:57 ` Marco Costalba [this message]
2006-03-18 6:40 ` Junio C Hamano
2006-03-18 7:36 ` Marco Costalba
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=e5bfff550603170257u21ee6583jabe5a6409cc40766@mail.gmail.com \
--to=mcostalba@gmail.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=torvalds@osdl.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).