]> git.alrj.org Git - zsh.d.git/blobdiff - S60_git
Git prompt: recognize message from new versions
[zsh.d.git] / S60_git
diff --git a/S60_git b/S60_git
index 54e61d477ad110bc101814a157c7fdf88db7c995..bb2c6f0cf5434c7364bc6b6e9ed0113f658836e4 100644 (file)
--- a/S60_git
+++ b/S60_git
@@ -39,7 +39,8 @@ git_get_status() {
       gitstatus='+'
     fi
 
-    if [[ $(echo ${gitstat} | grep -c "^\# Changed but not updated:$") > 0 ]]; then
+    if [[ $(echo ${gitstat} | grep -c "^\# Changed but not updated:$") > 0 || \
+          $(echo ${gitstat} | grep -c "^\# Changes not staged for commit:$") > 0 ]]; then
       gitstatus="${gitstatus}!"
     fi
 
@@ -95,10 +96,15 @@ git_parse() {
 
     git_dir=$(git rev-parse --git-dir 2> /dev/null) || return
 
-    base_dir=${$(readlink -f "$git_dir/..")/$HOME/'~'}
+    if [[ "$(git rev-parse --is-bare-repository)" == "true" ]]; then
+      base_dir=${$(readlink -f "$git_dir")/$HOME/'~'}
+      sub_dir=${$(pwd)#$(readlink -f "$git_dir")}
+    else
+      base_dir=${$(readlink -f "$git_dir/..")/$HOME/'~'}
+      sub_dir=${$(pwd)#$(readlink -f "$git_dir/..")}
+    fi
 
-    sub_dir=$(git rev-parse --show-prefix)
-    sub_dir=${sub_dir%/}
+    sub_dir=${sub_dir#/}
     ref=$(git symbolic-ref HEAD 2> /dev/null) || return
 
     action=""