From: "Alex Bennée" <kernel-hacker@bennee.com>
To: git@vger.kernel.org
Subject: Poor performance of git describe in big repos
Date: Thu, 30 May 2013 11:38:32 +0100 [thread overview]
Message-ID: <CAJ-05NPQLVFhtb9KMLNLc5MqguBYM1=gKEVrrtT3kSMiZKma_g@mail.gmail.com> (raw)
Hi,
I'm a fairly heavy user of the magit Emacs extension for interacting
with my git repos. However I've noticed there are some cases where lag
is very high. By analysing strace output of emacs calling git I found
two commands that where particularly problematic when interrogating
the repo:
11:00 ajb@sloy/x86_64 [work.git] >time /usr/bin/git --no-pager
describe --long --tags
ajb-build-test-5224-10-gfa296e6
real 0m5.016s
user 0m4.364s
sys 0m0.444s
11:34 ajb@sloy/x86_64 [work.git] >time /usr/bin/git --no-pager
describe --contains HEAD
fatal: cannot describe 'fa296e61f549a1252a65a13b2f734d7afbc7e88e'
real 0m4.805s
user 0m4.388s
sys 0m0.400s
Running with first command with the --debug flag on gives:
11:34 ajb@sloy/x86_64 [work.git] >time /usr/bin/git --no-pager
describe --long --tags --debug
searching to describe HEAD
lightweight 10 ajb-build-test-5224
lightweight 41 ajb-build-test-5222
annotated 146 vnms-2-1-36-32
annotated 155 vnms-2-1-36-31
annotated 174 vnms-2-1-36-30
annotated 183 vnms-2-1-36-29
lightweight 188 vnms-2-1-36-28
annotated 193 vnms-2-1-36-27
annotated 206 vnms-2-1-36-26
annotated 215 vectastar-4-2-83-5
traversed 223 commits
more than 10 tags found; listed 10 most recent
gave up search at 2b69df72d47be8440e3ce4cee91b9b7ceaf8b77c
ajb-build-test-5224-10-gfa296e6
real 0m4.817s
user 0m4.320s
sys 0m0.464s
Which has only traversed 223 before coming to a decision. This seems
like a very low number of commits given the time it's spent doing
this.
One factor might be the size of my repo (.git is around 2.4G). Could
this just be due to computational cost of searching through large
packs to walk the commit chain? Is there any way to make this easier
for git to do?
--
Alex, homepage: http://www.bennee.com/~alex/
next reply other threads:[~2013-05-30 10:38 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-30 10:38 Alex Bennée [this message]
2013-05-30 11:33 ` Poor performance of git describe in big repos Ramkumar Ramachandra
2013-05-30 13:09 ` Alex Bennée
2013-05-30 14:32 ` Ramkumar Ramachandra
2013-05-30 15:01 ` Alex Bennée
2013-05-30 15:17 ` Ramkumar Ramachandra
2013-05-30 15:33 ` Thomas Rast
2013-05-30 16:01 ` Alex Bennée
2013-05-30 16:21 ` Thomas Rast
2013-05-30 16:44 ` Thomas Rast
2013-05-30 19:01 ` Antoine Pelisse
2013-05-30 20:00 ` [PATCH 1/2] sha1_file: silence sha1_loose_object_info Thomas Rast
2013-05-30 20:00 ` [PATCH 2/2] lookup_commit_reference_gently: do not read non-{tag,commit} Thomas Rast
2013-05-30 21:22 ` Jeff King
2013-05-31 0:52 ` Duy Nguyen
2013-05-31 8:08 ` Thomas Rast
2013-05-31 16:00 ` Jeff King
2013-05-31 6:43 ` Ramkumar Ramachandra
2013-05-31 8:16 ` Thomas Rast
2013-05-30 19:30 ` Poor performance of git describe in big repos John Keeping
2013-05-31 8:14 ` Alex Bennée
2013-05-31 8:24 ` Thomas Rast
2013-05-31 8:40 ` Alex Bennée
2013-05-31 8:46 ` Thomas Rast
2013-05-31 9:57 ` Alex Bennée
2013-06-03 8:02 ` Alex Bennée
2013-06-03 16:32 ` Junio C Hamano
2013-06-03 17:48 ` Junio C Hamano
2013-05-31 10:27 ` Thomas Rast
2013-05-31 16:17 ` Jeff King
2013-06-03 8:39 ` Alex Bennée
2013-06-03 14:49 ` Jeff King
2013-05-31 8:32 ` John Keeping
2013-05-31 8:49 ` Alex Bennée
2013-05-31 8:59 ` John Keeping
2013-05-30 11:48 ` John Keeping
2013-05-30 12:29 ` Alex Bennée
2013-05-30 13:20 ` Duy Nguyen
[not found] ` <CAJ-05NPacjAEC99Ntd9eMnTD9_PMMYFob-_tAx5CeSB79TkRSg@mail.gmail.com>
2013-05-30 13:45 ` Duy Nguyen
2013-05-30 14:02 ` Alex Bennée
2013-05-30 13:16 ` Alex Bennée
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='CAJ-05NPQLVFhtb9KMLNLc5MqguBYM1=gKEVrrtT3kSMiZKma_g@mail.gmail.com' \
--to=kernel-hacker@bennee.com \
--cc=git@vger.kernel.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).