From: Mikael Magnusson <mikachu@gmail.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: Frank Terbeck <ft@bewatermyfriend.org>,
zsh-workers@zsh.org, Nikolai Weibull <now@bitwi.se>
Subject: Re: Slowness issue with git completion
Date: Tue, 26 Apr 2011 22:59:20 +0200 [thread overview]
Message-ID: <BANLkTi=N0DjXbf70LCo422DQ_2b0_dK_AQ@mail.gmail.com> (raw)
In-Reply-To: <BANLkTi=PrLsikjVhA-e06gjEkkxDpsdVaw@mail.gmail.com>
On 26 April 2011 22:57, Felipe Contreras <felipe.contreras@gmail.com> wrote:
> On Tue, Apr 26, 2011 at 11:34 PM, Mikael Magnusson <mikachu@gmail.com> wrote:
>> On 26 April 2011 22:23, Felipe Contreras <felipe.contreras@gmail.com> wrote:
>>> On Tue, Apr 26, 2011 at 9:43 PM, Frank Terbeck <ft@bewatermyfriend.org> wrote:
>>>> Felipe Contreras wrote:
>>>>> It's very easy to reproduce:
>>>>> % git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
>>>>> linux
>>>>> % cd linux
>>>>> % git log v<tab>
>>>>>
>>>>> It will take a looong time to figure out anything, specially if not
>>>>> cached. I think I recall investigating the issue and finding that it's
>>>>> looking for *all* the files in the git repo.
>>>>
>>>> Well yes. This is a known issue.
>>>>
>>>> I'm fairly sure that this is due to _multi_parts, which probably doesn't
>>>> scale for jobs like that. I once gave rewriting all that a shot and
>>>> ended up with a number of helpers for each "type" of file etc. (like
>>>> modified or ignored files). While they were significantly quicker than
>>>> the current code, they were probably still full of bugs and
>>>> shortcomings. Also, I would have had to rewrite *large* parts of the
>>>> rest of the completion, which would have been a *major* undertaking.
>>>>
>>>> In short: It's a known issue and it's very hard to fix (if only because
>>>> it is a *lot* of work).
>>>
>>> Here's a quick solution: don't try to list files. If I want to list
>>> files, I would use '-- '. And in fact, that's exactly what the bash
>>> completion does.
>>
>> git accepts files with or without a --
>
> So?
So if the command works, we should complete it.
>>> Moreover, why do you want to be smarter than git? There are ways to
>>> ask git precisely what we want: list the contents of certain tree-ish
>>> on-demand. And in fact, that's exactly what the bash completion does:
>>>
>>> time git ls-tree HEAD -- (0m0.005s)
>>> time git ls-tree HEAD -- drivers/ (0m0.007s)
>>
>> git ls-tree doesn't allow you to filter the output files by 'changed',
>> 'new', 'unknown' etc etc.
>
> So?
So we can use ls-tree for log i guess, but not for much else, git add
will still be slow for example.
--
Mikael Magnusson
next prev parent reply other threads:[~2011-04-26 20:59 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-26 18:26 Felipe Contreras
2011-04-26 18:43 ` Frank Terbeck
2011-04-26 19:06 ` Nikolai Weibull
2011-04-26 20:10 ` Frank Terbeck
2011-04-26 20:23 ` Felipe Contreras
2011-04-26 20:34 ` Mikael Magnusson
2011-04-26 20:57 ` Felipe Contreras
2011-04-26 20:59 ` Mikael Magnusson [this message]
2011-04-26 21:10 ` Felipe Contreras
2011-04-26 21:13 ` Mikael Magnusson
2011-04-26 21:35 ` Felipe Contreras
2011-04-26 22:03 ` Nikolai Weibull
2011-04-26 22:25 ` Felipe Contreras
2011-04-26 23:14 ` Benjamin R. Haskell
2011-04-27 7:01 ` Benjamin R. Haskell
2011-04-27 1:52 ` gi1242+zsh
2011-04-27 6:11 ` Nikolai Weibull
2011-04-27 8:30 ` Felipe Contreras
2011-04-27 8:47 ` Frank Terbeck
2011-04-27 9:06 ` Felipe Contreras
2011-04-27 10:15 ` Nikolai Weibull
2011-04-27 10:42 ` Felipe Contreras
2011-04-27 11:14 ` Nikolai Weibull
2011-04-27 4:19 ` Bart Schaefer
2011-04-27 6:13 ` Nikolai Weibull
2011-04-27 12:51 ` Nikolai Weibull
2011-04-27 14:55 ` Bart Schaefer
2011-04-27 18:36 ` Nikolai Weibull
2011-04-30 14:37 ` Simon Ruderich
2011-04-30 15:00 ` Simon Ruderich
2011-05-02 9:59 ` Nikolai Weibull
2011-05-03 13:59 ` Nikolai Weibull
2011-04-26 21:52 ` Benjamin R. Haskell
2011-04-26 22:04 ` Felipe Contreras
2011-04-26 22:35 ` Benjamin R. Haskell
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='BANLkTi=N0DjXbf70LCo422DQ_2b0_dK_AQ@mail.gmail.com' \
--to=mikachu@gmail.com \
--cc=felipe.contreras@gmail.com \
--cc=ft@bewatermyfriend.org \
--cc=now@bitwi.se \
--cc=zsh-workers@zsh.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.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
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).