I haven't been able to fix this, and I can't work out why it got slow all
of a sudden, but I did find that if I removed the 'alias' support in
"function __fish_git_using_command" then I get a usable 250ms for "git add"
completion.

Probably something using "git config --get-regexp alias" that was called
once and cached could be used to support aliases at speed.

Ben

On 11 June 2017 at 13:44, Ben Leslie <be...@benno.id.au> wrote:

> Kurtis, thanks for the tip. That certainly helped shed some light on what
> is happening.
>
> For anyone with any insight on the specific problem, I ran:
>
> fish --profile /tmp/some_file -c 'complete -C"git add "'
>
> The profile confirmed that it took 5,152ms to run.
> Of that 4,885 was running:
>
> command git config --get "alias.$cmd" ^/dev/null | string split " "
>
> (62 executions, each taking 79ms on average).
>
> Running e.g: "time git config --get alias.add", seems to confirm 70-90ms
> is about the right time for that shell command (and seems to be about the
> same time taken to just do "time git".
>
> By comparison running
>
> fish --profile /tmp/some_file2 -c 'complete -C"git "'
>
> Takes a speedy (or fast enough) 144ms .
>
> Given the cost of shelling out to git can't have just got extra slow all
> of a sudden (I don't think?), it seems that calling git config 62 times is
> the problem.
>
> I'm yet to work out why the completion needs to do that, if anyone has any
> hints, I'd appreciate it.
>
> Cheers,
>
> Ben
>
> On 11 June 2017 at 12:07, Kurtis Rader <kra...@skepticism.us> wrote:
>
>> Someone else recently asked about the speed of performing git
>> completions. You might want to follow the discussion here:
>> https://github.com/fish-shell/fish-shell/issues/4117
>>
>> On Sun, Jun 11, 2017 at 5:06 AM, Ben Leslie <be...@benno.id.au> wrote:
>>
>>> Hi all,
>>>
>>> I've been using fish for about 6 months now after moving from zsh.
>>>
>>> Everything was going well, until recently git sub-command completions
>>> have slowed down to to point of being unusable.
>>>
>>> Specifically:
>>>
>>>  git <tab>
>>>
>>> is fast, and works as expected
>>>
>>> git add <tab>
>>>
>>> is very slow (and replace 'add' with any other sub-command).
>>>
>>> What is the best way to debug what is going on here?
>>>
>>> I tried manually running e.g.:  __fish_git_add_files and it runs fast
>>>
>>> Thanks,
>>>
>>> Ben
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Fish-users mailing list
>>> Fish-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/fish-users
>>>
>>>
>>
>>
>> --
>> Kurtis Rader
>> Caretaker of the exceptional canines Junior and Hank
>>
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users

Reply via email to