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

Re: [PATCH] _git-grep: Complete files when outside git repos



Guido Cella wrote on Thu, Sep 24, 2020 at 22:34:41 +0200:
> ---
>  Completion/Unix/Command/_git | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
> index 05e2a23..67f06c5 100644
> --- a/Completion/Unix/Command/_git
> +++ b/Completion/Unix/Command/_git
> @@ -1037,6 +1037,12 @@ _git-grep () {
>    # don't complete treeishs.
>    case $state in
>      (tree-or-file)
> +      # Check if we're not in a git repository.
> +      if ! git rev-parse 2>/dev/null; then
> +        _files && ret=0
> +        return ret
> +      fi

Why is this correct?  When cwd isn't a repository, «git grep foo ./bar»
just errors out:
.
    % ls
    iota
    % git grep This iota
    fatal: not a git repository (or any parent up to mount point /)
    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    zsh: exit 128

Does newer git behave differently?  If not, shouldn't the behaviour be
conditional on --no-index having been passed?

>        integer first_tree last_tree start end i
>  
>        (( start = words[(I)(-f|-e)] > 0 ? 1 : 2 ))
> -- 
> 2.28.0
> 
> 




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