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

第35回 バージョン管理 ─プロジェクト管理ファイルについて[後編]

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

スコープの設定(Scopes)

.idea/scopes/scope_settings.xml, .idea/scopes/<スコープ名>.xml

第8回でちらっと紹介した「Scopes」に関する設定を保存しています。⁠Preferences / Scopes」でスコープを定義しますが,これもCopyrightやインスペクションと同じく共有するかどうかの設定(Share scope)を持ちます。⁠Share scope」なスコープを作ると,<スコープ名>.xmlというファイルがここにできあがります(⁠⁠Local」なスコープは.idea/workspace.xmlに保存されます⁠⁠。

図10 ⁠Preferences / Scopes」設定画面

図10 「Preferences / Scopes」設定画面

また,プロジェクトを作成した時点で.idea/scopes/scope_settings.xmlという設定ファイルができあがっていますが,こちらはメニューバーの「Analayze」にある各種依存性分析("Analayze ~ Dependencies")のオプションが記録されています。

結論

Copyrightやファイルエンコード,ファイルカラーなどスコープに依存した設定項目があります。これらの設定で独自定義したスコープを利用しているのであれば,スコープ定義も共有しておく必要があります。というより,共有したいスコープ(Shared scope)を作らない限り,設定ファイルはできあがらないので「共有したいから作った」とも言えるでしょう。

ただし,初めからある .idea/scopes/scope_settings.xml はスコープ定義とは用途が異なる設定ファイルで,共有するより個々人の好みの設定を持つほうが適切と思いますので,こちらは共有しないことをオススメします(たぶん,共有していても邪魔になります⁠⁠。

スペルチェック用の辞書(Spelling)

.idea/dictionaries/<ログインアカウント名>.xml

初期状態ではディレクトリすら存在していません。スペルチェックでtypoを指摘された時に辞書登録したか「Preferences / Spelling」「Accepted Words」に登録した単語が記録されます。しかも,厄介な事に <ログインアカウント名>.xml で記録されるので,個人用の辞書なのに,利用する環境によってファイル名が異なり使えない可能性がとても高いです。何を考えているんでしょうかね……。

図11 スペルチェックの辞書ファイルの実体

図11 スペルチェックの辞書ファイルの実体

結論

共有するだけ無駄なのでバージョン管理対象にしなくてよいです。

ちなみに「Preferences / Spelling」設定画面の「Dictionaries」タブに指定するのは「辞書ファイル*.dicがあるディレクトリ」で,その情報は .idea/workspace.xmlに保存されます。*.dicファイルの中味は1行に1単語が羅列されたテキストファイルです。

どうやら,スペルチェックはあくまで個人のたしなみというのが,Android Studioのコンセプトのようです。

タスク管理の設定(Tasks)

.idea/misc.xml

.idea/workspace.xml, <AS_CONFIG>/tasks/<プロジェクト名>.zip

GitHubやBitbucketの紹介のときに「あとで解説する」としていた課題追跡システム(Bugs/Issues Tracking System:BTS/ITS)と連携するための設定です。

「Preferences / Tasks / Servers」には連携先のBTS/ITSを設定します。連携先ごとに共有設定(Share URL)を行うことができ,共有(Share URLがON)の場合,その連携先の情報は.idea/misc.xmlに登録されます。

図12 ⁠Preferences / Tasks / Servers」設定画面

図12 「Preferences / Tasks / Servers」設定画面

連携先以外の「Preferences / Tasks」の設定内容は.idea/workspace.xmlに記録されます。

タスク管理がどういうものかは今回の番外編で紹介します。設定ファイルの保存先という観点では,BTS/ITSから連携したタスク(チケット)などは,<AS_CONFIG>/tasksにzipファイルとして保存されます。

結論

個人的には積極的に共有を勧めたくない .idea/misc.xml に共有したいBTS/ITSの情報が記録されます。疑問があるとすると,BTS/ITSの接続情報とはアカウント情報(IDやパスワード)の事で,個人固有ではなくプロジェクト共有のアカウントでBTS/ITSを運用するケースが思いつきづらいという事です。

なので,結論は変わらず.idea/misc.xml は共有しない」とします。連携情報以外の設定は,.ideaディレクトリに共有できる状態で保存されないため,共有対象になりえません。

テンプレート言語の設定(Template Data Languages)

.idea/templateLanguages.xml

FreeMarkerVelocityといったテンプレート言語の対象言語を指定します。⁠Preferences / Template Data Languages」で設定しますが,設定の仕方は前述した「ファイルエンコードの指定(File Encodings⁠⁠」によく似ています。

図13 ⁠Preferences / Template Data Languages」設定画面

図13 「Preferences / Template Data Languages」設定画面

結論

Android開発で,FreeMarkerやVelocityなどのテンプレートエンジンを使う機会があるのかよくわかりませんが,対象ファイルはひとつだけで邪魔になるわけでもない,という消極的理由ですが,せっかくなので共有しておきましょう。

ターミナルの設定(Terminal)

<AS_CONFIG>/options/terminal.xml

Android Studio v0.3.6あたりから追加された「Terminalツールウィンドウ」に関する設定です。

結論

設定ファイルのパスを見ればわかるとおり,これも「Project Settings」にみせかけて実は「IDE Settings」です。つまり,これも共有対象になり得ません。

バージョン管理の設定(Version Control)

.idea/vcs.xml, .idea/workspace.xml, <AS_CONFIG>/options.github_settings.xml, <AS_CONFIG>/options/vcs.xml

バージョン管理システムとの連携情報です。設定箇所も多数ありますが,実のところほとんどが「IDE Settings」であったり.idea/workspace.xmlに記録される個別設定です。どの設定がどこに保存されるのか 表1にまとめましたが,みごとに節操がありません。意外だったのが「除外ファイル設定(Preferences / Version Control / Ignored Files⁠⁠」が,.idea/workspace.xmlに保存されることです。これならば,Android Studioの除外ファイル設定は使わず,.gitignore.hgignoreを使った方が4096倍マシです。

表1 設定箇所と保存先

設定箇所保存先
Version Control ⁠全般的な設定).idea/vcs.xml, .idea/workspace.xml
Version Control / Confirmation ⁠確認項目).idea/workspace.xml
Version Control / Background ⁠バックグラウンド処理).idea/workspace.xml
Version Control / Ignored Files ⁠除外ファイル).idea/workspace.xml
Version Control / Issue Navigation ⁠チケット連携).idea/vcs.xml
Version Control / Changelist Conflicts ⁠チェンジリストの衝突).idea/workspace.xml
Version Control / GitHub<AS_CONFIG>/options/github_settings.xml
Version Control / CVS.idea/workspace.xml
Version Control / Git<AS_CONFIG>/options/vcs.xml
Version Control / Mercurial<AS_CONFIG>/options/vcs.xml
Version Control / Subversion.idea/workspace.xml

GitHubに二因子認証を設定している場合

「Preferences / Version Control / GitHub」「Auth Type」「Token」を選び,GitHubのアクセストークンを設定しておいてください。

図14 ⁠Preferences / Version Control / GitHub」設定画面

図14 「Preferences / Version Control / GitHub」設定画面

GitHubのアクセストークンはAuthorized Applications「Personal Access Token」にある「Create new token」ボタンを押して発行できます。

図15 GitHubのアクセストークンの発行方法

図15 GitHubのアクセストークンの発行方法

結論

実のところ.idea/vcs.xmlくらいしか共有する対象がありません。

Android Studioは同ファイルが無くても,バージョン管理システムからチェックアウトしてマウントした時点で再作成します。そうでなくても,プロジェクトディレクトリが何かしらのバージョン管理システムの管理下にあれば,それを自動的に認識して.idea/vcs.xmlを再生成します。

よって必ずしも共有しなければならない類のファイルではありませんが,積極的に除外する理由もないので共有しておきましょう。

著者プロフィール

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

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

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

Twitter: @masanobuimai