CWD uzak bir dosya sistemindeyken zsh'ın sürüm kontrolü entegrasyonunu nasıl seçerek devre dışı bırakabilirim?


16

OSX üzerinde zsh çalıştırıyorum ve bazen monte edilmiş bir sshfs biriminde çalışmak zorundayım. Ancak git sshfs bağları üzerinde GERÇEKTEN yavaştır. İstemim, zsh'ın sağladığı vc modu öğelerini kullanıyor, ancak bu durumda bu bölümü atlamak istiyorum.

CWD'm bağlı bir dosya sisteminde olduğunda vc entegrasyonunu seçici olarak devre dışı bırakmak istiyorum. Bunu nasıl yapabilirim?

Şu anda git bilgimi (kabaca) .zshrc snippet'ini kullanarak kullanıyorum (iyi, .oh-my-zsh / temalar, ancak fikri anlıyorsunuz):

zstyle ':vcs_info:*' enable hg git bzr svn p4

zstyle ':vcs_info:(hg*|git*):*' get-revision true
zstyle ':vcs_info:(hg*|git*):*' check-for-changes true

# rev+changes branch misc
zstyle ':vcs_info:hg*' formats "[%i%u %b%m]"
zstyle ':vcs_info:hg*' actionformats "(%{$fg_bold[red]%}%a%{$reset_color%})[%i%u %b%m]"

# hash changes branch misc
zstyle ':vcs_info:git*' formats "[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"
zstyle ':vcs_info:git*' actionformats "(%a)[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"

zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash

zstyle ':vcs_info:hg*:netbeans' use-simple true

zstyle ':vcs_info:hg*:*' get-bookmarks true

zstyle ':vcs_info:hg*:*' get-mq true
zstyle ':vcs_info:hg*:*' get-unapplied true
zstyle ':vcs_info:hg*:*' patch-format " mq(%g):%{$fg[green]%}%n%{$reset_color%}/%{$fg_bold[blue]%}%c%{$reset_color%} %{$fg[green]%}%p%{$reset_color%}"
zstyle ':vcs_info:hg*:*' nopatch-format ""

zstyle ':vcs_info:hg*:*' unstagedstr " ?"
zstyle ':vcs_info:hg*:*' hgrevformat "%{$fg[yellow]%}%r%{$reset_color%}" # only show local rev.
zstyle ':vcs_info:hg*:*' branchformat "%{$fg[magenta]%}%b%{$reset_color%}" # only show branch

# Show remote ref name and number of commits ahead-of or behind
function +vi-git-st() {
    local ahead behind remote
    local -a gitstatus

    # Are we on a remote-tracking branch?
    remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \
        --symbolic-full-name 2>/dev/null)/refs\/remotes\/}

    if [[ -n ${remote} ]] ; then
        # for git prior to 1.7
        # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l)
        ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l | tr -s ' ')
        (( $ahead )) && gitstatus+=( " ${c3}+${ahead}${c2}" )

        # for git prior to 1.7
        # behind=$(git rev-list HEAD..origin/${hook_com[branch]} | wc -l)
        behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l | tr -s ' ')
        (( $behind )) && gitstatus+=( " ${c4}-${behind}${c2}" )

        hook_com[branch]="${hook_com[branch]} [${remote}${(j:/:)gitstatus}]"
    fi
}

# Show count of stashed changes
function +vi-git-stash() {
    local -a stashes

    if [[ -s ${hook_com[base]}/.git/refs/stash ]] ; then
        stashes=$(git stash list 2>/dev/null | wc -l)
        hook_com[misc]+=" (${stashes} stashed)"
    fi
}

precmd () { vcs_info }
PROMPT='
%{$(get_prompt_user_color)%}%n%{$reset_color%} at %{$(get_prompt_host_color)%}%m%{$reset_color%} in %{$fg_bold[green]%}%~%{$reset_color%} ${vcs_info_msg_0_}
$(virtualenv_info)$(prompt_char) '


Hayır, sorun olan tamamlanma değil
Chris R

Tamam, "rtfm" cevabı için özür dilerim ... kılavuzun 26.4 bölümüne bakın ... yardımcı olmalı ... zsh.sourceforge.net/Doc/Release/…
Joe Internet

Bunu etkinleştirmek için kullandığınız ilgili zshrc bölümlerini ekleyebilir misiniz?
polinom

Yanıtlar:


9

Version-Control-Information'a göz atın

'Desenleri devre dışı bırak' bölümünde (sayfada yaklaşık% 20 aşağı) arama yapın.
Uzak bağlantılarınızın sabit veya nispeten sabit olduğunu varsayarsak, yani /mnt/remote/*hepsini listeleyebiliyorsanız, onlar için bir normal ifade bulabilmeniz gerekir.

Linkten örnek devre dışı olduğu vcs_infoaltında ~/.zsh/yoluyla:

zstyle ':vcs_info:*' disable-patterns "$HOME/.zsh(|/*)"

Sanırım zshrc veya eşdeğeri (özür dilerim - bash kullanıcısı) başlangıçta (veya periyodik olarak veya ...) uzak olanı anlayabilir ve zstylebuna göre güncelleyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.