vcs_info で Subversion のリビジョン番号が出ない問題

これは非常に便利そう。

Git だろうと Mercurial だろうと、ブランチ名をzshのプロンプトにスマートに表示する方法 - mollifier delta blog

私も今まではコマンドからプロンプトに情報を出してたんだけど、svnには対応してなかったし、こっちの方が簡潔で正確で詳細な情報が素早く出せそうな気がしたので乗り換えることにした。


導入方法は元エントリに載ってるので割愛。で、Subversionでちょっとした問題が。
Subversionではデフォルトだとブランチ名のところにリビジョン番号が出てくれるはずなんだけど、出ない。

(svn)-[trunk:]

ってみたいな感じになる。本当なら:の右側にリビジョン番号が出るはず。

どうやら vcs_info は US ロケール前提で作られているらしい。svn info のメッセージとかはロケールで変わってしまうので、うまく検出できていなかった模様。
なので、以下のようにすればいい。

LANG=en_US.UTF-8 vcs_info

無事表示されるようになった。

(svn)-[trunk:485]

ちなみに「リビジョン番号は頭にr付けるだろJK」って人はこうする。

zstyle ':vcs_info:(svn|bzr):*' branchformat '%b:r%r'

するとこうなる。

(svn)-[trunk:r485]