From ccd02866f67e704cd4844029c0f5787c0714e21c Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sun, 15 Apr 2018 12:44:48 -0400 Subject: Fix git_commits_{ahead,before} when no upstream branch is defined (#6658) If @{u} is not defined, git rev-list will give an error; redirect to stderr the error and deal with this case in what follows. --- lib/git.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/git.zsh') diff --git a/lib/git.zsh b/lib/git.zsh index 9b0f6e36f..b55b762d7 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -77,8 +77,8 @@ function git_current_branch() { # Gets the number of commits ahead from remote function git_commits_ahead() { if command git rev-parse --git-dir &>/dev/null; then - local commits="$(git rev-list --count @{upstream}..HEAD)" - if [[ "$commits" != 0 ]]; then + local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)" + if [[ -n "$commits" && "$commits" != 0 ]]; then echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX" fi fi @@ -87,8 +87,8 @@ function git_commits_ahead() { # Gets the number of commits behind remote function git_commits_behind() { if command git rev-parse --git-dir &>/dev/null; then - local commits="$(git rev-list --count HEAD..@{upstream})" - if [[ "$commits" != 0 ]]; then + local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)" + if [[ -n "$commits" && "$commits" != 0 ]]; then echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX" fi fi -- cgit v1.2.3-70-g09d2 From f75d096c1a3863b84cb9788d0934babe4cd3c577 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Sat, 8 Sep 2018 21:35:03 +0200 Subject: lib: small change to git_compare_version Fixes #7118 --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/git.zsh') diff --git a/lib/git.zsh b/lib/git.zsh index b55b762d7..b92373153 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -185,7 +185,7 @@ function git_prompt_status() { # Outputs -1, 0, or 1 if the installed version is less than, equal to, or # greater than the input version, respectively. function git_compare_version() { - local INPUT_GIT_VERSION INSTALLED_GIT_VERSION + local INPUT_GIT_VERSION INSTALLED_GIT_VERSION i INPUT_GIT_VERSION=(${(s/./)1}) INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null)) INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}) -- cgit v1.2.3-70-g09d2 From 5911aea46c71a2bcc6e7c92e5bebebf77b962233 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Apr 2019 20:38:13 +0200 Subject: lib: stop detecting git versions prior to 1.7.2 The 1.7.2 release was published in July 2010 [1]. It's about time to stop supporting older versions. Fixes #4583 [1] https://github.com/git/git/releases/tag/v1.7.2 --- lib/git.zsh | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) (limited to 'lib/git.zsh') diff --git a/lib/git.zsh b/lib/git.zsh index b92373153..640561e97 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -10,13 +10,10 @@ function git_prompt_info() { # Checks if working tree is dirty function parse_git_dirty() { - local STATUS='' + local STATUS local -a FLAGS - FLAGS=('--porcelain') + FLAGS=('--porcelain' '--ignore-submodules=dirty') if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then - if [[ $POST_1_7_2_GIT -gt 0 ]]; then - FLAGS+='--ignore-submodules=dirty' - fi if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then FLAGS+='--untracked-files=no' fi @@ -181,28 +178,6 @@ function git_prompt_status() { echo $STATUS } -# Compares the provided version of git to the version installed and on path -# Outputs -1, 0, or 1 if the installed version is less than, equal to, or -# greater than the input version, respectively. -function git_compare_version() { - local INPUT_GIT_VERSION INSTALLED_GIT_VERSION i - INPUT_GIT_VERSION=(${(s/./)1}) - INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null)) - INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}) - - for i in {1..3}; do - if [[ $INSTALLED_GIT_VERSION[$i] -gt $INPUT_GIT_VERSION[$i] ]]; then - echo 1 - return 0 - fi - if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then - echo -1 - return 0 - fi - done - echo 0 -} - # Outputs the name of the current user # Usage example: $(git_current_user_name) function git_current_user_name() { @@ -214,8 +189,3 @@ function git_current_user_name() { function git_current_user_email() { command git config user.email 2>/dev/null } - -# 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 -unfunction git_compare_version -- cgit v1.2.3-70-g09d2