Mercurialリポジトリでリポジトリのホームに戻るzsh関数を作った

id:hitode909さんが作った、Gitのリポジトリのトップレベルにcdするコマンドのコマンドが便利だったので、Mercurialでも同じようなzsh関数を作成してみた。

function hu() {
  local cdup=`hg showconfig bundle.mainreporoot`
  if [ $# = 1 ]; then
    cdup+="/$1"
  fi
  cd $cdup
}

huと打つとMercurialリポジトリのホームに移動できる。
また引数にリポジトリのホームからの相対パスを渡すことで、深い別の場所にいてもすぐに移動できる。

しかし、git rev-parse --show-cdupとかGitのサブコマンドの充実っぷりとそのオプションの豊富さは便利だなぁ。

追記[2011-06-04]

上記のようにhg showconfigしてるけど、mercurialにはhg rootというコマンドが用意されている。
このコマンドはmercurialリポジトリのルートディレクトリパスを表示してくれる。
したがって、上記のzsh関数は以下のより簡潔になる。

function hu() {
  local cdup=`hg root`
  if [ $# = 1 ]; then
    cdup+="/$1"
  fi
  cd $cdup
}