Android Studio最速入門~効率的にコーディングするための使い方

第31回 バージョン管理 ─Mercurial連携とBitbucket

この記事を読むのに必要な時間:およそ 7 分

はじめに

今回はGitばかりに注目が集まってイマイチ人気がないように思えるMercurial連携についてです。リポジトリにはBitbucketを使います。Bitbucketから連携用プラグインが提供されていますが,まずはAndroid Studio標準機能だけで説明を進めますBitbucketプラグインについては,別枠で解説します)⁠

今回も第3回で紹介したサンプルコードを題材に説明していきます。

事前準備

Git連携と同じくAndroid Studio単体ではMercurialと連携できませんので,別途 hgコマンドを準備しておいてください。hgコマンドはMercurialの公式サイトから,それぞれのプラットフォーム用のバイナリがダウンロードできます。

インストールしたhgコマンドをAndroid Studioに認識させます。設定箇所は「Preferences / Version Control / Mercurial」「Specifiy executable path」です。環境変数PATHhgコマンドが登録済みの場合は,この設定は不要です。

図1 ⁠Preferences / Version Control / Mercurial」設定画面

図1 「Preferences / Version Control / Mercurial」設定画面

Android StudioのMercurial連携の実態はGit連携と同じく,Android Studioからhgコマンドを呼び出しているだけです。そのためMercurialに関する諸設定はAndroid Studioではなくhgコマンドに対して行います。たとえば,企業内ネットワークからインターネット上のリポジトリにアクセスする場合は,リスト1のように<HOME>/.hgrcまたは<HOME>/mercurial.iniにプロキシサーバの設定を行います。

リスト1 Mercurialのプロキシ設定

[http_proxy]
host = proxy.example.com:8080

注意事項

主にWindowsでの話になりますが,Mercurialの操作を行うと「abort: unknown encoding: Windows-31J」というエラーが出ます。この手のエンコード問題はまともに取り合うとややこしいので,リスト2のように環境変数HGENCODINGを設定してやり過ごしています。

リスト2 環境変数:HGENCODINGの設定例

HGENCODING=utf-8

参考までに,今回の執筆のために検証を行った環境のmercurial.iniの内容をリスト3に示します。

リスト3

[ui]
username=masanobu imai <masanobu.imai@gmail.com>
[extensions]
eol=
[encode]
**=cleverencode:
[decode]
**=cleverdecode:
[http_proxy]
host = proxy.example.com:8080

さらに追記事項があります(12/24)⁠

PC側の準備はこれでおしまいです。Git,Subversionの時と同じく,MercurialもAndroid Studioの他に専用のクライアントを用意しておきましょう。Gitの時に紹介したSourceTreeがWindowsでもMacでも使えて便利です。WindowsだとTortoiseHgというクライアントもあります。

最後に,今回利用するBitbucketですが,アカウントを登録しておくのはもちろんのこと,公開するリポジトリもあらかじめ準備しておいてください。リポジトリタイプは当然,Mercurialです。

図2 Bitbucket上に公開するプロジェクトを用意しておく

図2 Bitbucket上に公開するプロジェクトを用意しておく

プロジェクトをMercurial連携する

これと同じ説明をするのは3回目なのですが,まずはMercurial連携をするプロジェクトを準備します。既存のプロジェクトを利用するも良しですし,新規に作成するも良しです。

Gitの例にならえば,Mercurial連携もメニューバーから「VCS → Enable Version Control Integration...」を実行し「Mercurial」を選ぶのですが,これを実行してもMercurial連携は開始されません。むしろエラーになります(Android Studio v0.3.6で確認)⁠

図3 ⁠Enable Version Control Integration」ダイアログ

図3 「Enable Version Control Integration」ダイアログ

おそらくバグなのだと思います。このバグが解消するまでは次に紹介する方法でMercurial連携を開始しましょう。

プロジェクトをMercurial連携するもうひとつの方法は,メニューバーから「VCS → Import into Version Control → Create Mercurial Repository」を実行する事です。コマンドを実行すると 図4のようなダイアログが表示されます。

図4 ⁠Create Mercurial repository」ダイアログ

図4 「Create Mercurial repository」ダイアログ

「どこにMercurialリポジトリを作成する?」と問い合わせてきているので「今のプロジェクト」を指す「Create repository for the whole project」を選択します。もう一方の選択肢「Select where to create repository」は任意の場所にMercurialリポジトリを作成します)⁠

これでプロジェクトがMercurial連携状態になりました。ツールバーにVCS関連のアイコンが追加され,⁠Changesツールウィンドウ」「Version Controlツールウィンドウ」が表示されます。

Git連携の時と同じく,ステータスバーの右端にブランチ名が表示されます。Mercurialでも,この地味ぃなインターフェイスは意外に便利なので,存在を覚えておいてください。

ちなみに,この状態はまだ何もMercurialリポジトリにAddされていませんが,プロジェクト自体はMercurialリポジトリになっています。

図5 プロジェクトとMercurialリポジトリの状態

図5 プロジェクトとMercurialリポジトリの状態

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai

コメント

コメントの記入