summaryrefslogtreecommitdiff
path: root/lib/git.zsh
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2020-02-27 22:55:30 +0100
committerGitHub <noreply@github.com>2020-02-27 22:55:30 +0100
commit18ee5dffdc57bb9219ee96b40da006704ac37df1 (patch)
treee1fe420cf18fa7a916d5d43c408c6f92ed33b62d /lib/git.zsh
parentd81cd753e0b3a845e8f3549da245dbad102a6e4c (diff)
parent368198b7616eb69b396de86d9ec4ff0f35bd72f0 (diff)
downloadzsh-18ee5dffdc57bb9219ee96b40da006704ac37df1.tar.gz
zsh-18ee5dffdc57bb9219ee96b40da006704ac37df1.tar.bz2
zsh-18ee5dffdc57bb9219ee96b40da006704ac37df1.zip
Merge branch 'master' into clipboard
Diffstat (limited to 'lib/git.zsh')
-rw-r--r--lib/git.zsh21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/git.zsh b/lib/git.zsh
index 640561e97..00cb00b19 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -12,11 +12,21 @@ function git_prompt_info() {
function parse_git_dirty() {
local STATUS
local -a FLAGS
- FLAGS=('--porcelain' '--ignore-submodules=dirty')
+ FLAGS=('--porcelain')
if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
FLAGS+='--untracked-files=no'
fi
+ case "$GIT_STATUS_IGNORE_SUBMODULES" in
+ git)
+ # let git decide (this respects per-repo config in .gitmodules)
+ ;;
+ *)
+ # if unset: ignore dirty submodules
+ # other values are passed to --ignore-submodules
+ FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
+ ;;
+ esac
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
fi
if [[ -n $STATUS ]]; then
@@ -189,3 +199,12 @@ function git_current_user_name() {
function git_current_user_email() {
command git config user.email 2>/dev/null
}
+
+# Output the name of the root directory of the git repository
+# Usage example: $(git_repo_name)
+function git_repo_name() {
+ local repo_path
+ if repo_path="$(git rev-parse --show-toplevel 2>/dev/null)" && [[ -n "$repo_path" ]]; then
+ echo ${repo_path:t}
+ fi
+}