summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2019-11-28 22:02:54 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2019-11-29 20:56:42 +0000
commitcc3983ee586dff16638bdcdea40c784a54026571 (patch)
tree257b192751585afcffe56f9f661249bdcd9d491f
parentdae3e135d8c3e2d16e7dc22582aa8a3f66716de7 (diff)
downloadzsh-cc3983ee586dff16638bdcdea40c784a54026571.tar.gz
zsh-cc3983ee586dff16638bdcdea40c784a54026571.zip
44945: vcs_info git: Optimize detection by running fewer external commands.
-rw-r--r--ChangeLog6
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_detect_git3
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b6ee5ca22..13218b017 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-11-30 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * 44945: Functions/VCS_Info/Backends/VCS_INFO_detect_git:
+ vcs_info git: Optimize detection by running fewer external
+ commands.
+
2019-11-29 Daniel Shahaf <d.s@daniel.shahaf.name>
* 44948: Completion/Unix/Command/_subversion: Make
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_detect_git b/Functions/VCS_Info/Backends/VCS_INFO_detect_git
index 61bc483e3..e4191f474 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_detect_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_detect_git
@@ -6,8 +6,7 @@ setopt localoptions NO_shwordsplit
[[ $1 == '--flavours' ]] && { print -l git-p4 git-svn; return 0 }
-if VCS_INFO_check_com ${vcs_comm[cmd]} && ${vcs_comm[cmd]} rev-parse --is-inside-work-tree &> /dev/null ; then
- vcs_comm[gitdir]="$(${vcs_comm[cmd]} rev-parse --git-dir 2> /dev/null)" || return 1
+if VCS_INFO_check_com ${vcs_comm[cmd]} && vcs_comm[gitdir]="$(${vcs_comm[cmd]} rev-parse --git-dir 2> /dev/null)" ; then
if [[ -d ${vcs_comm[gitdir]}/svn ]] ; then vcs_comm[overwrite_name]='git-svn'
elif [[ -d ${vcs_comm[gitdir]}/refs/remotes/p4 ]] ; then vcs_comm[overwrite_name]='git-p4' ; fi
return 0