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". 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 -- 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