現在のディレクトリがgitの管理下にあるかどうか判定する方法を思いついたので、 walf443さんの方法 を改良してみました。 こんな感じに、gitで管理されてないディレクトリではブランチ名を表示しなくなります。

ss

実際のzshrcは以下の通り。

   1  _set_env_git_current_branch() {
   2    GIT_CURRENT_BRANCH=$( git branch &> /dev/null | grep '^\*' | cut -b 3- )
   3  }
   4  
   5  _update_rprompt () {
   6    if [ "`git ls-files 2>/dev/null`" ]; then
   7      RPROMPT="[%~:$GIT_CURRENT_BRANCH]"
   8    else
   9      RPROMPT="[%~]"
  10    fi
  11  } 
  12    
  13  precmd() 
  14  { 
  15    _set_env_git_current_branch
  16    _update_rprompt
  17  }
  18  
  19  chpwd()
  20  {
  21    _set_env_git_current_branch
  22    _update_rprompt
  23  }

git ls-filesがgitの管理下以外では何も返さない事を利用しています。

追記

  • 2>/dev/null が抜けていたので追加しました。
posted by Png genki on Fri 26 Dec 2008 at 16:38

以前、 benchmarkforrails というRailsプラグインを紹介した事がありました。 しばらく互換性の問題があって使うのをやめていたのですが、 久々にRails-2.2.2環境で使ってみたら動いたので、 最新版のリポジトリの場所を紹介します。

gitで公開されているので、以下のようにインストールします。

   1  % ./script/plugin install git://github.com/cainlevy/benchmarkforrails.git 

See Also

posted by Png genki on Fri 26 Dec 2008 at 14:29
Contents
Gitのブランチ名をRPROMPTに表示する方法を改良してみた
The BenchmarkForRails is ready to use with Rails-2.2.2
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ