about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbrian m. carlson <sandals@crustytoothpaste.net>2015-08-17 22:45:31 +0000
committerFrank Terbeck <ft@bewatermyfriend.org>2015-08-18 01:00:25 +0200
commit9a369d39e13787c376c57713ab8c14e5c0f4bfb8 (patch)
tree7d6a24383bf06e209c9b92db4ecdfc0d46960a59
parent769c6cbc28eb32bcc2b8eb0bd49a30f015d4ae6b (diff)
downloadzsh-9a369d39e13787c376c57713ab8c14e5c0f4bfb8.tar.gz
zsh-9a369d39e13787c376c57713ab8c14e5c0f4bfb8.tar.xz
zsh-9a369d39e13787c376c57713ab8c14e5c0f4bfb8.zip
36209: vcs_info: avoid grep error message when file is missing
When running git rebase -m and a conflict occurs, the git-rebase-todo
file is not present.  This leads to an error from grep every time the
shell prompt is printed when vcs_info is enabled.  Avoid this message by
checking if the file exists before trying to grep it.
-rw-r--r--ChangeLog5
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_get_data_git4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5ad76a36f..7a84c0a9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-08-18  brian m. carlson  <sandals@crustytoothpaste.net>
+
+	* 36209: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+	vcs_info: avoid grep error message when file is missing
+
 2015-08-17  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
 	* unposted: Completion/Linux/Command/_sshfs: _sshfs: Fix
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
index c348da2a7..3fc861eeb 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
@@ -210,7 +210,9 @@ elif [[ -d "${gitdir}/rebase-merge" ]]; then
         # remove action
         git_patches_applied+=("${${(s: :)p}[2,-1]}")
     done
-    git_patches_unapplied=(${(f)"$(grep -v '^$' "${patchdir}/git-rebase-todo" | grep -v '^#')"})
+    if [[ -f "${patchdir}/git-rebase-todo" ]] ; then
+        git_patches_unapplied=(${(f)"$(grep -v '^$' "${patchdir}/git-rebase-todo" | grep -v '^#')"})
+    fi
     VCS_INFO_git_handle_patches
 elif [[ -d "${gitdir}/rebase-apply" ]]; then
     # Fake patch names for all but current patch