"Tom \"Ravi\" Hale" <[email protected]> writes:

> If a user types `set -e` in an interactive shell, and is using __git_ps1
> to set
> their prompt, the shell will die if the current directory isn't inside a git
> repository.
>
> This is because `set -e` instructs the shell to exit upon a command
> returning a non-zero exit status, and the following command exits with
> status 128:
>
>       repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
>               --is-bare-repository --is-inside-work-tree \
>               --short HEAD 2>/dev/null)"

Hmph.  So the fix would be something like this?

        repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
                --is-bare-repository --is-inside-work-tree \
-               --short HEAD 2>/dev/null)"
+               --short HEAD 2>/dev/null || :)"

I am too afraid to ask what a user would try to achieve by doing the
"set -e" thing in an interactive session.  It is understandable (I
am not saying I think it is necessarily a good idea) to do so in a
script, but for an interactive shell?

Reply via email to