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

Re: vcs_info: can't get %c and %u to perform as expected

On 06/05/2011, at 15:19 , Frank Terbeck wrote:

> You need to set the `check-for-changes' style. After that, it should
> work.

It appears that the %c and %u escapes were added some time between 4.3.9 (stock standard Mac OS X Snow Leopard 10.6.7) and 4.3.11 (installed via MacPorts).  Having upgraded to 4.3.11 I can now get the "staged" flag to show up:

15:25 ~project ➤ zstyle ':vcs_info:*' formats '%b/%c/%u'                       ±master
15:28 ~project ➤ vcs_info ; echo $vcs_info_msg_0_                              ±master
15:28 ~project ➤ touch blah                                                    ±master
15:28 ~project ➤ vcs_info ; echo $vcs_info_msg_0_                             ±master!
15:28 ~project ➤ git add blah                                                 ±master!
15:29 ~project ➤ vcs_info ; echo $vcs_info_msg_0_                             ±master!

>  I'm not sure if with the hg backend, it's also required to set
> the `get-revision' style (Seth?).  If it is, that's missing from the
> manual and should be fixed.

15:36 ~hg-stuff ➤ zstyle -L ':vcs_info:*'                                        ☿trunk
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' enable ALL
zstyle ':vcs_info:*' formats %b/%c/%u
zstyle ':vcs_info:*' get-revision true

15:36 ~hg-stuff ➤ touch blah                                                      ☿trunk
15:36 ~hg-stuff ➤ vcs_info ; echo $vcs_info_msg_0_                               ☿trunk?
15:36 ~hg-stuff ➤ hg add blah                                                    ☿trunk?
15:37 ~hg-stuff ➤ zstyle ':vcs_info:*' get-revision false                        ☿trunk+
15:38 ~hg-stuff ➤ vcs_info ; echo $vcs_info_msg_0_                               ☿trunk+
15:38 ~hg-stuff ➤ zstyle ':vcs_info:*' get-revision true                         ☿trunk+
15:38 ~hg-stuff ➤ vcs_info ; echo $vcs_info_msg_0_                               ☿trunk+

So apparently the get-revision style needs to be true in order to get the 'unstaged' changes flag to show up for Mercurial.

But now I'm even more confused since vcs_info's "staged" and "unstaged" changes don't conform to my expectations. I'm expecting that my working copy is in one of three states: "dirty" (signified by '?' above), having "added but uncommitted" changes (see '+' above), or unchanged from VCS. Thus (by my thinking), "unstaged" should conform to "dirty", "staged" should conform to "added but uncommitted" - but it looks like that's not the case.

> There is a file `Misc/vcs_info-examples', which is included with newer
> versions of zsh. If contains a number of examples for `vcs_info' as its
> name suggests.

I have been working through that and other sources. My initial problem getting the %c/%u escapes to do anything was due to user error (using the wrong version of ZSH or at least the vcs_info function).

>  <http://eseth.org/2010/hg-in-zsh/>

I'll keep note of that for sure!


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