Heroku に Mercurial でデプロイする

準備

とりあえず hg, git, heroku コマンドは使えるようになっていること。

  • hg-git エクステンションを導入する。今回のキモ。ただし changeset 1189e52ba27c 以降でないとうまく動かない。
  • .hgrc の [git] セクションに intree = True を追加する。これを設定すると hg-git 用の git リポジトリの場所が /.hg/git から /.git に変わる。
  • ユーザー毎の無視指定((.hgrc の [ui] セクション ignore で指定できる。))で ^\.git$ (syntax: regexp) を除外しておく。

1. mercurial リポジトリを作成する

まずはアプリを作り、mercurial リポジトリにコミットする。

2. アプリケーションを作成する

git init したあとに、heroku create --stack cedar する。すると git リポジトリのリモートに heroku が登録される。

これを登録しないと heroku コマンドで毎回アプリケーションの名前を打ち込む羽目になる。

3. push する

hg-git を導入しているのでリモートの git リポジトリhg push する。

リモートリポジトリのパスは git config remote.heroku.url で見ることが出来る。ただし、先頭に git+ssh:// を付ける必要がある。((例. hg push git+ssh://git@heroku.com:APPLICATION-NAME.git))

毎回リモートリポジトリを指定するのは面倒なので、default-push を設定すると楽。(参考: JapaneseTipsAndTricks - Mercurial)