diff --git a/prompt.sh b/prompt.sh index d60fe9f..cfe5e94 100644 --- a/prompt.sh +++ b/prompt.sh @@ -18,7 +18,8 @@ find_git_dirty() { git_dirty='' else # Based on: http://stackoverflow.com/a/2659808/170413 - if git diff-files --quiet + local err + if err=$(git diff-files --quiet 2>&1) then if git diff-index --quiet --cached HEAD then @@ -27,6 +28,11 @@ find_git_dirty() { # Can't figure out different colors git_dirty="^" fi + elif [ -n "$err" ] + then + # Some error - most likely that it was run within $GIT_DIR + # Resolve repo root instead? `git rev-parse --git-dir` does not work, nor does the 'git root' alias trick + git_dirty="" else git_dirty="*" fi