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

第28回 バージョン管理 ─Subversion連携とGoogle Code

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

はじめに

今回はなんだかんだで未だ需要の多いSubversion連携についてです。リポジトリにはGoogle Codeを用いますが,GitHubと異なりAndroid StudioにはGoogle Code固有の連携機能はありません。単なるSubversionのリポジトリとして扱いますので,自分が試す環境に適時読み替えてください。

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

事前準備

Subversionは中央型リポジトリなので,何かしらのリポジトリサーバを準備しておいてください。

Subversion連携機能はAndroid Studioに組み込まれているため,Subversion1.7以下のリポジトリを扱うのであれば svnコマンドを準備する必要がありません。

企業ネットワーク内などプロキシを越えてインターネット上のリポジトリにアクセスする場合は「Preferences / Version Control / Subversion」のNetworkタブの「Use Android Studio general proxy settings as default for Subverion」をONにします。

図1 「Preferences / Version Control / Subversion」設定画面(Networkタブ)

図1 「Preferences / Version Control / Subversion」設定画面(Networkタブ)

この設定により,Subversion連携時にAndroid Studioのプロキシ設定が有効になります。一般にSubversionのリポジトリがインターネット上にある事は稀なので,多くの場合この設定は不要です。今回はGoogle Code上のリポジトリを利用するため必要な設定になります。

なお,Google Code上のSubversionリポジトリは初期状態で図2のような構成になっています。

図2 Google Code上のSubversionリポジトリの初期状態

図2 Google Code上のSubversionリポジトリの初期状態

[コラム]Subversion1.8について

Android Studioは自身にSubversion連携機能を内蔵していますが,サポートしているバージョンは1.6と1.7です。1.8形式のワーキングコピーを扱いたい場合は,別途svnコマンドが必要になります。

主にWindowsでTortoiseSVNを使っている場合は特に注意が必要です。ご存じの通り,Subversionの最新バージョンは1.8です。それに対応するようにTortoiseSVNも最新バージョンは1.8系になっています。TortoiseSVNの上位バージョンは下位バージョンのワーキングコピーを扱えませんので,Android Studioと併用を考えている場合は,Android Studio側にあわせてTortoiseSVNのバージョンを下げるか,別途 1.8用のsvn.exeを用意するかを決めてください。

なお,TortoiseSVNにはsvn.exeは付属していないので,subversion.apache.orgなどから入手してください。

Android Studioでの設定は「Preferences / Version Control / Subversion」のGeneralタブにある「Use command line client」をONにして,隣のテキストフィールドに svnコマンドのパスを指定します。

図3 「Preferences / Version Control / Subversion」設定画面(Generalタブ)

図3 「Preferences / Version Control / Subversion」設定画面(Generalタブ)

Android StudioのベースとなったIntelliJ IDEAの次期バージョン(ver.13)では,Subversion1.8のネイティブサポートを宣言しています。原稿執筆時点のIDEA13βではまだ対応していませんが,この原稿が公開される頃にはAndroid StudioでもSubversion1.8をネイティブサポートしているかもしれませんね。

プロジェクトをリポジトリに登録する

Subversionの流儀にしたがえば,登録したいプロジェクトをリポジトリにインポートするところから始めるのですが,それは大変面倒なのでやめます。Android Studioでオススメの方法はメニューバーから「VCS → Import into Version Control → Share Project (Subversion)...」を実行することです。

コマンドを実行すると「Select Share Target」ダイアログが表示されます。Android Studioで初めてSubversionを使うときは「Point to repository location」には何も表示されていないので「+」アイコンを押してSubversionリポジトリを指定します。

図4 「Select Share Target」ダイアログ

図4 「Select Share Target」ダイアログ

「Define share target」には,リポジトリにどのようにプロジェクトを登録するかを指定します。Google Code上のリポジトリにはすでに/trunk, /braches, /tagsといったお決まりのディレクトリが作成済みですが,今回のプロジェクト用に改めてディレクトリを作成したいので,3番目のラジオボタンを選択します。

3番目のラジオボタンを選択すると「ついでに /tags, /branches も作るか?(Create /tags and /branches)」というチェックボックスが選択できるようになるので,こちらもONにします。

なお「Define shara target」で指定したリポジトリURLがすでに存在している場合,その後の公開処理に失敗するので注意してください。図4の例だと https://masanobuimai.googlecode.com/svn/MyFirstAppProjectはリポジトリ上に存在してないことが条件になります。

「Commint Comment Prefix」は空欄でも構いません。ラベル名が「~ Prefix」と意味ありげですが,何の事は無い普通のコミットログのことです。

「Share」ボタンを押すと「Subversion Working Copy Format」ダイアログが表示されます。これから今のプロジェクトをSubversionの作業コピーとするのですが,そのフォーマットのバージョンを決定します。Google CodeのSubversionリポジトリは 1.6 なので,それにあわせて「1.6 format」を選択します(ここは各自の環境に合わせて好きなのを選んでください)。

図5 「Subversion Working Copy Format」ダイアログ

図5 「Subversion Working Copy Format」ダイアログ

その後,Subversionへの認証処理を経てプロジェクトの公開が完了します。この操作が内部的に行っている作業はおおよそ以下の通りです。

  1. 指定したリポジトリにプロジェクト用のディレクトリを作成する。
  2. 作成したディレクトリを,今のプロジェクトにチェックアウトする(これで,プロジェクトがSubversionのワーキングコピーになりました)。
  3. プロジェクトにあるファイルをsvn addしてコミット候補にあげておく。

図6 "Share Project (Subversion)..."の概要

図6 

結果,図7のようなお決まりの構造をもったプロジェクトをリポジトリに登録されます。

図7 リポジトリに登録したプロジェクトの構造

図7 リポジトリに登録したプロジェクトの構造

余談になりますが,Gitの時に使った"Enable Version Control Integration..."はSubversionではほとんど役に立ちません。「Enable Version Control Integration」ダイアログの選択肢に「Subversion」はありますが,それを選択したからといって何がどうなるわけでもないです(ホントウは何からの変化はあるのですが,些細な話なので後の回で改めて説明します)。

著者プロフィール

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

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

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

Twitter: @masanobuimai

コメント

  • ありがとうございます

    コメントありがとうございます。
    最近、すっかりTortoiseSVNを使っていないので、あとで確認しておきます。

    Commented : #2  今井勝信 (2016/01/09, 17:48)

  • TortoiseSVN と svn.exe

    >TortoiseSVNにはsvn.exeは付属していない

    TortoiseSVN のインストーラで command line client tools のインストールを有効にすれば、インストールされるのではないでしょうか。
    なお、既定では無効になっています。

    Commented : #1  吉川成晴 (2016/01/06, 20:07)

コメントの記入