about summary refs log tree commit diff
path: root/Functions/VCS_Info/Backends/VCS_INFO_detect_git
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/VCS_Info/Backends/VCS_INFO_detect_git')
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_detect_git15
1 files changed, 15 insertions, 0 deletions
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_detect_git b/Functions/VCS_Info/Backends/VCS_INFO_detect_git
new file mode 100644
index 000000000..627b8cf23
--- /dev/null
+++ b/Functions/VCS_Info/Backends/VCS_INFO_detect_git
@@ -0,0 +1,15 @@
+## vim:ft=zsh
+## git support by: Frank Terbeck <ft@bewatermyfriend.org>
+## Distributed under the same BSD-ish license as zsh itself.
+
+setopt localoptions NO_shwordsplit
+
+[[ $1 == '--flavours' ]] && { print -l git-p4 git-svn; return 0 }
+
+if VCS_INFO_check_com git && git rev-parse --is-inside-work-tree &> /dev/null ; then
+    vcs_comm[gitdir]="$(git rev-parse --git-dir 2> /dev/null)" || return 1
+    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
+fi
+return 1