8000 Git alias parsing breaks on shell aliases · Issue #5412 · fish-shell/fish-shell · GitHub
[go: up one dir, main page]

Skip to content

Git alias parsing breaks on shell aliases #5412

@jeremywiebe

Description

@jeremywiebe

Problem

Most of my git aliases do not support tab completion.

I use several git aliases that are scripts instead of just a shortening of a git command. This breaks the git alias parsing in git.fish.

It's pretty easy to illustrate the problem using the following:

$ git config --global alias.br "!echo \"A wacky alias\" && echo \"More wackiness\""
$ git br
A wacky alias
More wackiness
$ git config -z --get-regexp 'alias\..*' | while read -lz alias command _
    echo $alias
    echo $command
end 

alias.br
!echo

As you can see it seems to split on the whitespace in the alias and then comes out with just the first part. I've been overriding it by doing set --universal __fish_git_alias_co "checkout" but that gets overridden by fish.git when I start a new Terminal (even if I put that in ~/.config/fish/config.fish).

Lastly, I can't disable/override the git alias parsing as that isn't guarded by an flag check.

I'd be happy to work up a PR if anyone is willing to give me some guidance/ideas on how to address this. :)

Environment

OS: macOS 10.14
Terminal: Terminal.app (built in terminal)
Version: fish, version 2.7.1
uname -a: Darwin Jeremys-MacBook-Pro.local 18.0.0 Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT 2018; root:xnu-4903.201.2~1/RELEASE_X86_64 x86_64
$TERM: xterm-256color

Possibly relevant (but I haven't changed this):

$ set | grep IFS
IFS \n\ \t

I haven't reproduced this in a pristine shell because, but I have broken down the relevant parts of git.fish and can reproduce the issue that way.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0