Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: vcs_info : git, hg, svn, fossil, etc.



2012/9/20 Gautier DI FOLCO <gautier.difolco@xxxxxxxxx>:
> Hi all,
>
> I'm new to zsh and to this ML, so I have few questions.
> To begin I'm running zsh 4.3.17 (i386-redhat-linux-gnu) on a fedora 17-i686,
> I use oh-my-zsh, but I'm a bit limited by the lack of support from other VCS
> that git, I also use svn, hg, fossil, so I search and I find vcs_info! I
> fall in love
> of zsh again. So I edit my them to have the following thing :
> #!/usr/bin/env zsh
>
> # Set required options.
> setopt promptsubst
>
> # Load required modules.
> autoload -U add-zsh-hook
> autoload -Uz vcs_info
>
> # Add hook for calling vcs_info before each command.
> add-zsh-hook precmd vcs_info
>
> # Set vcs_info parameters.
> zstyle ':vcs_info:*' enable hg bzr git svn fossil
> zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos.
> zstyle ':vcs_info:*:*' unstagedstr '!'
> zstyle ':vcs_info:*:*' stagedstr '%B%{$fg[green]%} ✚%{$reset_color%}'
> zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)"
> zstyle ':vcs_info:*:*' formats "%c" "[|%i]
> %B%{$fg[blue]%}%s:%{$fg[red]%}%b%{$reset_color%}"
> zstyle ':vcs_info:*:*' nvcsformats "" ""
> zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b'
>
> PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[red]%}➜
> %{$reset_color%}'
>
> ZSH_THEME_GIT_PROMPT_PREFIX="git:%{$fg[red]%}"
> ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
> ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}%{$reset_color%}"
> ZSH_THEME_GIT_PROMPT_CLEAN=""
>
> RPROMPT='${vcs_info_msg_0_}
> ${vcs_info_msg_1_}${return_status}$(git_prompt_status)
> $(git_time_since_commit)%{$reset_color%}'
>
> It doesn't work :
>
>    - Git is well supported (because it is part of omz)
>    - Branches aren't supported for svn (only the root directory is printed)
>    - Hg last commit doesn't appear
>    - Fossil is not supported at all

For fossil the thing is that  VCS_INFO_detect_fossil is only looking
for _FOSSIL_ file but now on unix by default it should be looking for
.fslckout

To make this work, edit the file, change:
vcs_comm[detect_need_file]=_FOSSIL_
to
vcs_comm[detect_need_file]="_FOSSIL_ .fslckout"

And it will work.

Tested and approved here :)

regards,
Bapt



Messages sorted by: Reverse Date, Date, Thread, Author