Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: [PATCH] Re: git completion is really slow for some git commands.



On Mon, 2008-10-13 at 17:01 +0200, Jrg Sommer wrote:
> Hello Brice,
> 
> Brice Figureau schrieb am Mon 13. Oct, 10:15 (+0200):
> > On Mon, 2008-10-13 at 00:53 +0000, Jrg Sommer wrote:
> > > >  * this shell array is then passed to _multi_parts for path
splitting of
> > > > each element. This is this operation that takes age. As soon as
I change
> > > > the _multi_parts code to just call a naive compadd and return,
the
> > > > completion is (almost) immediate, and seems to work fine.
> > > 
> > > Can you try this patch? It doesn't change anything if you didn't
specify
> > > anything, i.e. git log -- <TAB> takes still very long. But it
optimizes
> > > the case when you specify anything. Try git log --
some/thing<TAB>.
> > 
> > [snipped patch]
> > 
> > Yes, that works way faster for this case. Unfortunately it doesn't
seem
> > to report the right results:
> 
> I've forgot to put the result back in an array. Try this patch:
[snipped patch]

Yes, this fixes the issue, and that's a good enhancement!

Unfortunately if you have plenty of completion possibility under the
same prefix, you hit again the root issue that is that _multi_part is
pretty slow when fed with large arrays. I didn't had a look to
_multi_part in detail yet but I think it is at least an O(n2) kind of
algorithm. I'll try to have a look to the algorithm and see if maybe
there is something that we can do for it.

Thanks for you patch, I'm running with it now :-)
-- 
Brice Figureau <brice+zsh@xxxxxxxxxxxxxxxx>



Messages sorted by: Reverse Date, Date, Thread, Author