IntelliJ IDEA 12 x Mercurial x Bitbucket連携
最近IntelliJを使う機会が増えて参りました。そうなるとやはりDVCSも連携させて使って行きたいところ。という訳で備忘録を兼ねてその辺の内容をメモとして残しておこうと思います。
Mercurialインストール
下記エントリを元にインストール。
- Mac OS X 開発環境構築手順:Mercurialインストール - Shinya’s Daily Report
- Mac OS X 開発環境構築手順:Mercurialドキュメントの日本語化 - Shinya’s Daily Report
インストール後のバージョン確認。
$ hg version Mercurial - 分散構成管理ツール(バージョン 2.3) (詳細は http://mercurial.selenic.com を参照してください) Copyright (C) 2005-2012 Matt Mackall 他 本製品はフリーソフトウェアです。 頒布条件に関しては同梱されるライセンス条項をお読みください。 市場適合性や特定用途への可否を含め、 本製品は無保証です。 $ which hg /usr/local/bin/hg $
プロジェクト用意
今回はこの時のもくもく結果を残そうとして作業過程途中で断念した経緯がありました。
なのでこのエントリでもIDEA12でPlay2.0Javaをやって、Mercurialプラグイン経由でBitBucketにプッシュする、という準備をします。以下はPlayプロジェクト作成してIDEAに取り込むまで。
$ play new todolist $ todolist (プロジェクト名:そのままでEnter) $ 2 (Create a simple Java application) $ cd todolist $ play [todolist] $ idea ※IDEAを開き、[Open]で上記作成プロジェクトを選択
連携諸作業
ここからはIDEA上での設定内容確認。[File]→[Other Settings]→[Default Settings]を選択。[Version Control]→[Mercurial]を選択、path欄に上記コマンドで確認した値が設定されている(pathが通っている)事を確認。無ければ設定。
メニュー:[VCS]→[Enable Version Control Integration…]を選択。対象となる(D)VCSを選択し、[OK]押下。(※ここではMercurialを選択)
するとプロジェクト右クリックでコンテキストメニューにMercurialが出てくるようになりました。他の(D)VCSも同様の手順で行けると思われ。しかしデフォルトで主要バージョン管理をカバーしてるとは素晴らしいですねぇ、IntelliJは。
[VCS]→[Import into Version Control]→[Create Mercurla Repository]を選択。
[Create Repository…]を選択、[OK]押下。(※Select...でも変わんないかな?)
プロジェクトを右クリック→[Mercurial]→[Commit Directory]すると、こうなる。
[IntelliJ IDEA]→[Preferences]→[Version Control]を開いてみると、一応プロジェクトがMercurial管理対象には指定されているようです。
問題はこの後、プロジェクトを右クリックして丸ごと[Add to VCS]しようと思ったのですが出来ません...。
幾つか情報を漁ってみたものの、実現に至るような解決策は見当たらず。ディレクトリ単位での選択もどうやら無効のようです。ファイル単位でなら[Add to VCS]は可能。試しに1つやってみるとこういう感じにファイル名の色が変わります。
今回対象としたのはPlay2.0Javaのプロジェクトなので、公式情報を元に管理が必要そうなフォルダ(内の対象ファイル)をポチポチ選んで行ってAdd。この辺りもしやるとすればコマンドベースでやるとかになるのかな〜。対象ファイル多数Addするのは恐らくは最初の1回だけだろうし、以後は随時追加する形になるだろうし、これはこれで良しとするか。
上記まででAdd to VCSしたファイルがある状態でプロジェクトを右クリック→[Mercurial]→[Commit Directory...]を選択。するとこんな感じで諸々選択設定が出来る画面が出てくる。[Commit]押下。(※Commit and Pushとかも出来るみたいだがここは1歩ずつ)
コミット完了。下の方にこんな吹き出しが出る。
BitBucketへのPUSHを行う。プロジェクトを右クリック、[Mercurial]→[Push]を選択。
Push先のURL等を設定し、[Push]押下。途中パスワードを聞かれるので入力。(※Bitbucketのパスワードともう1種別のパスワード入力を求められたような気がするがその辺若干曖昧だった...)
Push完了。該当のBitbucketリポジトリにアクセスして内容を確認。(下記の内容はプロジェクト作成直後のものなので何の面白味も無いですので悪しからず(´・ω・`))
...よし。これでひとまずはIntelliJでも(D)VCSを連携させた作業も遂行出来そうだ。環境選択の幅が広まって良い感じ。
※この作業の過程で、Twitter上で何人かの御方にアドバイス助言などを頂きました。一応の形ではありますが、手順としてまとめる事が出来ましたのでこの場で御礼をお伝えしたいと思います。ありがとうございました!
追記1:VCS管理対象ファイルの操作について
コメントで以下アドバイスを頂きましたので、その辺りの内容も併せて追記。いまいまさのぶ (TwitterID:@masanobuimai)さん、ありがとうございました!
VCSへのAdd方法ですが、わたしはChangesツールウィンドウから行う方法を好んで使ってます。 "Unversioned Files"から適当なchangeset(通常は"Default")にドラッグ&ドロップすればAddできます。 フォルダごとでもOKです。ただしフォルダを表示させるには、ツールバーの「Group by Directory」をONにしておく必要があります。 たぶん、この方法のほうがお望みのオペレーションに近いんじゃないかと思います。
- プロジェクト配下をMercurial(なりVCS)対象にすると[Changes]タブが表示される。
- [Changes]タブ指定→[Group by Directory]アイコンを選択→[Click to browse]リンククリック→コミットしたいファイルなりフォルダを指定→[Move to Another Changelist]をクリック。
- 移動先のChangelistを[Default]に設定し、[OK]押下。以降[Unversioned Files]ウインドウで連続して追加する事も出来るし...
- ファイルをドラッグ&ドロップで移動出来るようにもなります。(※どう言ったタイミングでこの操作が行える様になるのかは不明&調査中)
追記2:マスターパスワードについて
- プロジェクトをコミットする際にリポジトリへのアクセス時ユーザ名/パスワードを設定したあと、
- マスターパスワードを設定する事が出来る。詳しい内容は以下URL等を参照。こちらも@masanobuimaiさんにコメント頂きました。ありがとうございました!
それとVCS連携が設定した状態でIntelliJからファイルを作成すると、都度「VCSにも登録するか?」と聞いてきます。 あと「パスワードを2回...」のもう一方はIntelliJのマスターパスワードじゃないかな?と思います (パスワードの保存方法に「IntelliJに永続的に保存する」的なのがあるので。