Browse Source

Merge branch 'master' of https://github.com/robbyrussell/oh-my-zsh

fred-o 13 years ago
parent
commit
a4748a2aad
2 changed files with 35 additions and 3 deletions
  1. 34 2
      lib/git.zsh
  2. 1 1
      plugins/bundler/bundler.plugin.zsh

+ 34 - 2
lib/git.zsh

@@ -4,15 +4,21 @@ function git_prompt_info() {
   echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
   echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
 }
 }
 
 
+
 # Checks if working tree is dirty
 # Checks if working tree is dirty
 parse_git_dirty() {
 parse_git_dirty() {
-  if [[ -n $(git status -s --ignore-submodules=dirty 2> /dev/null) ]]; then
+  local SUBMODULE_SYNTAX=''
+  if [[ $POST_1_7_2_GIT -gt 0 ]]; then
+        SUBMODULE_SYNTAX="--ignore-submodules=dirty"
+  fi
+  if [[ -n $(git status -s ${SUBMODULE_SYNTAX}  2> /dev/null) ]]; then
     echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
     echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
   else
   else
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
   fi
   fi
 }
 }
 
 
+
 # Checks if there are commits ahead from remote
 # Checks if there are commits ahead from remote
 function git_prompt_ahead() {
 function git_prompt_ahead() {
   if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
   if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
@@ -61,4 +67,30 @@ git_prompt_status() {
     STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
     STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
   fi
   fi
   echo $STATUS
   echo $STATUS
-}
+}
+
+#compare the provided version of git to the version installed and on path
+#prints 1 if input version <= installed version
+#prints -1 otherwise 
+function git_compare_version() {
+  local INPUT_GIT_VERSION=$1;
+  local INSTALLED_GIT_VERSION
+  INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
+  INSTALLED_GIT_VERSION=($(git --version));
+  INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
+
+  for i in {1..3}; do
+    if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then
+      echo -1
+      return 0
+    fi
+  done
+  echo 1
+}
+
+#this is unlikely to change so make it all statically assigned
+POST_1_7_2_GIT=$(git_compare_version "1.7.2")
+#clean up the namespace slightly by removing the checker function
+unset -f git_compare_version
+
+

+ 1 - 1
plugins/bundler/bundler.plugin.zsh

@@ -6,7 +6,7 @@ alias bu="bundle update"
 
 
 # The following is based on https://github.com/gma/bundler-exec
 # The following is based on https://github.com/gma/bundler-exec
 
 
-bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
+bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
 
 
 ## Functions
 ## Functions