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

Re: VCS_INFO_get_data_git produces output in git-annex directories



Nils Steinger wrote on Mon, Mar 10, 2014 at 19:31:56 +0100:
> Hi,
> 
> I'm using oh-my-zsh and noticed that whenever I changed into a directory
> containing a git-annex repository, "fatal: This operation must be run in
> a work tree" appeared above my shell prompt.

Would it be a better fix to change the if's condition to include 'git
rev-parse --is-inside-work-tree'?  I'm not sure whether that would break
some other use-case, but avoiding a non-working case seems preferable to
swallowing errors silently.

Cheers,

Daniel

P.S.  This patch conflicts with the one I just sent.  The conflict is
trivial (my patch just reindents the line your patch changes), but if
both patches are applied then whoever applies the second one will run
into it.

> After unsuccessfully grep-ing the oh-my-zsh sources for a command that
> could cause this output, I 'set -x' and found that the error message was
> caused by line 119 in
> /usr/share/zsh/functions/VCS_Info/Backends/VCS_INFO_get_data_git.
> 
> I assume that's accidental (since it's useless and annoying) and have
> attached a patch to fix this behavior.
> 
> Nils

> --- /usr/share/zsh/functions/VCS_Info/Backends/VCS_INFO_get_data_git.old    2014-03-10 18:16:33.514629788 +0000
> +++ /usr/share/zsh/functions/VCS_Info/Backends/VCS_INFO_get_data_git    2014-03-10 18:15:54.919823850 +0000
> @@ -116,7 +116,7 @@
>     [[ "$(${vcs_comm[cmd]} rev-parse --is-inside-git-dir 2> /dev/null)" != 'true' ]] && \
>     ${vcs_comm[cmd]} rev-parse --quiet --verify HEAD &> /dev/null ; then
>      # Default: off - these are potentially expensive on big repositories
> -    ${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules --quiet --exit-code ||
> +    ${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules --quiet --exit-code &> /dev/null ||
>          gitunstaged=1
>      ${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules HEAD 2> /dev/null
>      (( $? && $? != 128 )) && gitstaged=1
> 



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