Ted Pavlic <ted@xxxxxxxxxxxxx> wrote: > The GIT_PS1_DIRTYSTATE support uses a "git diff" to see if a "*" should > be placed after the branch name. The "git diff" fails with an ugly error > if the user has just changed directory into GIT_DIR. > > This patch uses "git rev-parse --is-inside-work-tree" to determine > whether a "--work-tree=.." should be added to the "git diff". I think it makes more sense to just drop the work tree stuff from the prompt if we aren't inside the work tree anymore. Meaning, we should behave as though bash.showDirtyState is false. > Signed-off-by: Ted Pavlic <ted@xxxxxxxxxxxxx> > --- > contrib/completion/git-completion.bash | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index 6772be7..ffde82a 100755 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -115,10 +115,14 @@ __git_ps1 () > > local w > local i > + local worktreestr > > if test -n "${GIT_PS1_SHOWDIRTYSTATE-}"; then > if test "$(git config --bool bash.showDirtyState)" != "false"; then > - git diff --no-ext-diff --ignore-submodules \ > + if test "false" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)"; then > + worktreestr="--work-tree=.." > + fi > + git ${worktreestr} diff --no-ext-diff --ignore-submodules \ > --quiet --exit-code || w="*" > if git rev-parse --quiet --verify HEAD >/dev/null; then > git diff-index --cached --quiet \ > -- > 1.6.1.2.390.gba743 > -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html