|
|
|
@ -12,10 +12,24 @@ function +vi-git-untracked() {
|
|
|
|
|
# If we are in a .git folder, do not check for untracked files.
|
|
|
|
|
[[ "${PWD:A}" =~ "\.git/" ]] && return
|
|
|
|
|
|
|
|
|
|
# If we are in a repos root folder, vcs_comm[gitdir] yields ".git".
|
|
|
|
|
# Inside the .git dir itself (and not a subdir of it) the variable
|
|
|
|
|
# yields ".". In any other case (either a subdirectory of .git or
|
|
|
|
|
# the repo itself), the value of vcs_comm[gitdir] is the absolute
|
|
|
|
|
# path to the .git directory.
|
|
|
|
|
# Therefore we can step up a directory, if we are inside the .git
|
|
|
|
|
# folder. And in any other case, use the parent directory of the
|
|
|
|
|
# gitdir.
|
|
|
|
|
local repoDir="."
|
|
|
|
|
# Getting the parent dir of the current dir "." is still ".", so
|
|
|
|
|
# is is safe to do this always.
|
|
|
|
|
[[ "${vcs_comm[gitdir]}" != ".git" ]] && repoDir="${vcs_comm[gitdir]:A:h}"
|
|
|
|
|
[[ "${vcs_comm[gitdir]}" == "." ]] && repoDir="${PWD:A:h}"
|
|
|
|
|
|
|
|
|
|
if [[ "$POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY" == "true" && "$(command git submodule foreach --quiet --recursive 'command git ls-files --others --exclude-standard')" != "" ]]; then
|
|
|
|
|
hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')"
|
|
|
|
|
VCS_WORKDIR_HALF_DIRTY=true
|
|
|
|
|
elif [[ "$(command git ls-files --others --exclude-standard)" != "" ]]; then
|
|
|
|
|
elif [[ "$(command git ls-files --others --exclude-standard "${repoDir}")" != "" ]]; then
|
|
|
|
|
hook_com[unstaged]+=" $(print_icon 'VCS_UNTRACKED_ICON')"
|
|
|
|
|
VCS_WORKDIR_HALF_DIRTY=true
|
|
|
|
|
else
|
|
|
|
|