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

第32回 バージョン管理─Mercurial連携の使い方

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

はじめに

いつものように解説編です。Mercurial連携はGit連携やSubversion連携と異なり,そんなに機能豊富ではないので1回でおしまいです。

Mercurial連携時のユーザインターフェイスの特徴

今まで紹介したGitやSubversionの時と同じようにMercurial連携時もユーザインタフェースが変化します。

ある程度はバージョン管理システムに関わりなく共通で,特定のバージョン管理システムによって部分的に異なるというのは,そういう事情を知っていれば便利なのですが知らないと混乱の元ですよね。でも,きっとこれはAndroid Studioの利点なのだと思いましょう。

Version Controlツールウィンドウ

Git連携と同じくMercurial連携時も「Version Controlツールウィンドウ / Consoleタブ」にAndroid Studioが内部で実行したhgコマンドのログが出力されます。

図1 ⁠Version Controlツールウィンドウ / Consoleタブ」

図1 「Version Controlツールウィンドウ / Consoleタブ」

Changesツールウィンドウ

「Local」タブはどのバージョン管理システムと連携しても違いはありません。以前からMercurial連携を使っていた人は気付いたと思いますが,コミットログを表示するタブは v0.3.5 から「Logタブ」になりました(以前は「Repositoryタブ」⁠

「Logタブ」に表示する内容や機能もGit連携時のそれと類似しています。

図2 ⁠Changesツールウィンドウ / Logタブ」

図2 「Changesツールウィンドウ / Logタブ」

コミットログにはロググラフとブランチの位置を示すラベルが表示されます。Git連携のものと似ていますが,リモートリポジトリのブランチやタグは表示されませんので注意してください。ラベルの色の意味は 図3 のとおりです。

図3 コミットログのラベルの意味

図3 コミットログのラベルの意味

「HEAD」と表示しているラベルはブランチヘッドの事ではなく,どうやらtipを指しているようです。

ステータスバー

Git連携と同じく現在のブランチを表示するエリアが追加されます。当然,クリック可能です。ブランチ名の脇にカッコ書きで表示している数字は直前のコミット番号です。

図4 ステータスバーの状態(その1)

図4 ステータスバーの状態(その1)

「Changesツールウィンドウ / Logタブ」でリビジョンの現在位置を知ることができないため,ステータスバーに表示しているコミット番号だけが唯一の頼りになります。

また,デフォルトではOFFになっていますが,⁠Preferences / Version Control / Mercurial」「Check for incoming and outgoing changesets」をONにするとステータスバーに「Incoming」「Outgoing」の通知アイコンが表示されます。これらの見方や使い方については,後ほど説明します。

リポジトリを最新の状態に保つ

リモートリポジトリが設定されている前提で説明します。いわゆるhg pullですが,メニューバーの「VCS → Mercurial → Pull...」から実行します。

図5 ⁠Pull」ダイアログ

図5 「Pull」ダイアログ

図5「Pull」ダイアログです。defaultのリモートリポジトリがプリセットしてあるので,そのまま「Pull」ボタンを押すとhg pullを実行します。

Gitしか知らない人には「?」な事を言いますが,このコマンドはホントウにhg pullしかしません。リモートから取り込んだ変更を今のプロジェクトに反映するには,別途メニューバーから「VCS → Mercurial → Update To...」を選びhg updateを実行します。

つまり,hg pullはGitでいうgit fetch相当なので,git pullに相当する操作をするにはhg pull & hg updateを実行する必要があります。ただでさえMercurial連携時の「Changesツールウィンドウ / Logタブ」がどこを指しているのかわかりづらいため,正直 hg pull のみの"Pull..."操作はオススメしません。

説明が回りくどくなりましたが,メニューバーの「VCS → Update Project...」を使うと,図6 のようなダイアログが表示されます。

図6 ⁠Update Project」ダイアログ

図6 「Update Project」ダイアログ

「Update Project」ダイアログのチェックボックスの指定に応じて実際の操作は変化しますが,デフォルトですべてONになっているため,表1の操作を一括して行います。

表1 ⁠Update Project」ダイアログのオプション

コマンド意味
pullリモートの変更を取得hg pull
updateローカルに変更を反映hg update
mergeローカルの変更とマージ
commit after merge without conflictsマージでコンフリクトがなければ,そのままコミット

筆者はMercurialの文化的背景に明るくないので断定はできませんが,中途半端に見える "Pull..." より,"Update Project..." のオプション全部のせのほうが便利に思えます。

著者プロフィール

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

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

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

Twitter: @masanobuimai

コメント

コメントの記入