From b3d1826a431028acdbbae1eb5242f5641da17788 Mon Sep 17 00:00:00 2001 From: Kirk <1652877+chenkirk@users.noreply.github.com> Date: Fri, 23 Apr 2021 06:22:18 -0700 Subject: [PATCH] feat(ys): add setting to hide dirty info in hg repositories (#8415) On large mercurial projects, using `hg status` to show dirty prompt causes significant delay. This commit checks a local hg config value of `oh-my-zsh.hide-dirty` to skip dirty check. Users who wish to skip dirty check can add this to their `.hg/hgrc` file. ``` [oh-my-zsh] hide-dirty = 1 ``` This config value uses the same naming as ones found for git, in file lib/git.zsh. --- themes/ys.zsh-theme | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme index 89d5355dc..95067060b 100644 --- a/themes/ys.zsh-theme +++ b/themes/ys.zsh-theme @@ -26,10 +26,12 @@ ys_hg_prompt_info() { if [ -d '.hg' ]; then echo -n "${YS_VCS_PROMPT_PREFIX1}hg${YS_VCS_PROMPT_PREFIX2}" echo -n $(hg branch 2>/dev/null) - if [ -n "$(hg status 2>/dev/null)" ]; then - echo -n "$YS_VCS_PROMPT_DIRTY" - else - echo -n "$YS_VCS_PROMPT_CLEAN" + if [[ "$(hg config oh-my-zsh.hide-dirty 2>/dev/null)" != "1" ]]; then + if [ -n "$(hg status 2>/dev/null)" ]; then + echo -n "$YS_VCS_PROMPT_DIRTY" + else + echo -n "$YS_VCS_PROMPT_CLEAN" + fi fi echo -n "$YS_VCS_PROMPT_SUFFIX" fi