Zsh Mailing List Archive
Messages sorted by:
Re: Slowness issue with git completion
- X-seq: zsh-workers 29063
- From: Mikael Magnusson <mikachu@xxxxxxxxx>
- To: Felipe Contreras <felipe.contreras@xxxxxxxxx>
- Subject: Re: Slowness issue with git completion
- Date: Tue, 26 Apr 2011 22:59:20 +0200
- Cc: Frank Terbeck <ft@xxxxxxxxxxxxxxxxxxx>, zsh-workers@xxxxxxx, Nikolai Weibull <now@xxxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=W5DITfV6hK42OWfl/mkxUa2YMmaOKq34DoNrxGoiaJU=; b=L9nGNVxS3uL0sX4/H17eaPipbify0k8uZKUghwAsRKcFOvSqOLIH9J/Ni/frp3J13v DriJ922/gFn22iwc/Stg4TUxfBZn9SVI/f0I5uKeCheeeQhijAh2aSMzTDJU/w8rQaye LQp165hdRPKy5VyywzVmyS+CIV9QqWoVlzYho=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=yAL+48/SlMvOK8AyTrE7K3mTG2vTHEPQ7how8dDJcevqjuFq2qtsvxABffGPLlJ4Yw H+HKFnfWFt8WzzA884nwrJCP599HYAFxPvju5ujINVZsu12JjONlm5qV/TcbhCDKIXmt HTw957izPFRMs52CEEKqNDNBi/Qr6GnxSornY=
- In-reply-to: <BANLkTi=PrLsikjVhA-e06gjEkkxDpsdVaw@mail.gmail.com>
- List-help: <mailto:email@example.com>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:firstname.lastname@example.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <BANLkTinKo=W8umz=JfneD3MNYdmv=xYhFQ@mail.gmail.com> <email@example.com> <BANLkTim6WJWCrfLokA045Sc8su8DMXnKNw@mail.gmail.com> <BANLkTi=eLWad_TB4L=chD=3Fb_Pd9AQyqQ@mail.gmail.com> <BANLkTi=PrLsikjVhA-e06gjEkkxDpsdVaw@mail.gmail.com>
On 26 April 2011 22:57, Felipe Contreras <felipe.contreras@xxxxxxxxx> wrote:
> On Tue, Apr 26, 2011 at 11:34 PM, Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
>> On 26 April 2011 22:23, Felipe Contreras <felipe.contreras@xxxxxxxxx> wrote:
>>> On Tue, Apr 26, 2011 at 9:43 PM, Frank Terbeck <ft@xxxxxxxxxxxxxxxxxxx> 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
>>>>> % 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 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 we can use ls-tree for log i guess, but not for much else, git add
will still be slow for example.
Messages sorted by: