diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Functions/VCS_Info/Backends/VCS_INFO_detect_git | 3 |
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 |