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

vcs_info on a hg repository with a git subrepository; actionformats works ok, formats does not



Dear all,

I am using zsh v5.0.0, mercurial v2.3.1 and git v1.7.12 on ArchLinux.

I have enabled and been using the vcs_info function for my prompt as following:

> autoload -Uz colors && colors
> autoload -Uz vcs_info
> zstyle ':vcs_info:*' enable git hg svn
> zstyle ':vcs_info:*' check-for-changes true
> zstyle ':vcs_info:*' get-revision true
> zstyle ':vcs_info:*' unstagedstr '!'
> zstyle ':vcs_info:hg*:*' branchformat "%b"
> zstyle ':vcs_info:hg*:*' hgrevformat "%r"
> zstyle ':vcs_info:hg*:*' get-unapplied true
> zstyle ':vcs_info:hg*:*' patch-format "mq(%g):%n/%c %p"
> zstyle ':vcs_info:hg*:*' nopatch-format "mq(%g):%n/%c %p"
> zstyle ':vcs_info:hg*' formats "(%s) [%i%u %b %m]"
> zstyle ':vcs_info:hg*' actionformats "(%s|%a) [%i%u %b %m]"
>
> local user_host="%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}"
> local current_dir="%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}"
> setopt PROMPT_SUBST
> precmd() { vcs_info }
> PROMPT='╭─${user_host} ${current_dir} %{$fg[green]%}${vcs_info_msg_0_}%{$reset_color%}
> ╰─%B$%b '

Generally this setup works well, there is just one case where it does
not, a mercurial repository with a git sub-repository. More
specifically, when no change has been done I get a prompt like this:

> (hg) [git --version ]

On the other hand, prompt is ok if there is a change, e.g.:

> (hg) [5! default ]

I have found out that %i is replaced by "git" and %b by "--version" in
formats, but in actionformats they seem to be properly replaced.

Apparently this is an issue of the formatting, but in previous
versions it was working. E.g. the same configuration works on another
PC with zsh v4.3.17, mercurial v2.0.2 and git v1.7.9.5. Any idea what
could be the problem?


Kind regards,

Yannis



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