2012-12-03

TortoiseHgインストール (Mac編)

初めておたちよりのみなさま、こんにちは。
Redmineつながりで、@cointoss1973さんが募集されていた、TortoiseHg アドベントカレンダーに参加させていただくことになりました。
実はMercurialはあまり使いこなせてなくて(GitもSVNも似ようなものではありますが)、正直エントリするのはおこがましい位なのですが、ちょうどMacに環境を切り替えたところだったので、インストール話なら...ということで、3日目のエントリとして書かせていただきます。

結果からいうと、基本操作はできますが、まだ日本語化とかアプリケーションフォルダからの起動ができず、完璧とは言えない状態です。

[20121210 追記]

本エントリでは、インストールは出来たものの、アプリケーションフォルダからの起動と、日本語化が上手く行きませんでした。
日本語化が上手くできなかった件については、TortoiseHgビルドの前に、gettextがインストールされているということが前提だそうです。
本エントリの中で、この部分と、gettextを先に入れていなかった場合の対応手順を追加しています。

* * *

1. 本家に行ってダウンロード....ではないらしい

  • まずは、TortoiseHg本家に行きます。
  • アクセスすると、日本語画面に直行。TortoiseHgダウンロード(for Mac OS X)のバナーがさりげなく表示されており、迷うことはまずなさそうですね。この辺のサイトの作り手の皆さんのご配慮は大変ありがたいです。


が、いきなりパッケージダウンロードではありません。
「あれれ?」と思ったら、どうやらMac専用のインストール解説ページに移りました。(ここから先は英語です)
TortoiseHgのページのDownloadのページを見ると、Windows向けバイナリがリストアップされていますが、Macはどうかというと、やっぱり下のほうにあり、なにやら専用の手順が必要な模様です。
"To use the settings tool on Mac OS X, you must have http://code.google.com/p/iniparse/ installed."

2. Bitbucketへ行きました



リンクをたどった先は、Bitbucketです。何やら注意書きには、finkのunstable treeに置いてあると書いてあります。また、どうやらpythonのバージョンにも依存するようです。
この時点で、わたしのMacには、すでにMercurialのソースを取ってくる必要があったので、hgとSourceTreeが入れてあります。Pythonは確認すると2.7が入っています。あまり考え無しにいろいろ入れているので、ちょっと不安.....
ただし、Note: Also if you already use Homebrew there are steps at the end. という一文がありましたので、こちらに従うことにしました。せっかくお誘いを受けてエントリしているのでBlogにはレポートしたいですし、ちょうどBitbucketのリポジトリにpush したいものがありましたので....。
ただし、このパターンでも、brew install .....  で済む訳ではないらしく、GUIにQtを使っている関係で、Qtのソースも入れてビルドしないといけない模様です。ということで、まずは、Homebrew版のインストールをすべく、説明のページの一番下に移動。
途中、ソースからビルドする場合のStepが書かれてあり、やっぱりインストールしなおしになったり使うのを止めた場合の対応が大変そうだったので、決心は変えませんでした。
でも、ソースからビルドする説明の最後に、 "Happy Hacking!" の文字が書かれてありましたので、達成感はありそうですね〜(^^;

3. Homebrewでインストール

ガイドでは、まずXcodeとHomebrew野インストールをしてね、という説明があります。実は、XcodeとHomebrewのインストールは既に終わっていましたので、その次のステップから記載します。
20121210追記分:
TortoiseHgのビルドの前に、gettextを入れておきましょう!(日本語化ファイルが生成できません!)Homebrewならすぐに入ります。
$ brew install gettext
$ brew link gettxt
単純に、順番に下記のコマンドを実行していきました。
$ brew install pyqt
$ brew install qscintilla2

$ brew update
$ easy_install pip $ pip install Pygments iniparse Mercurial
pyqtはソースからビルドしていくので、結構時間がかかりました。体感で10分くらいかかったような...(かなり心配でした)
それでも一応make installが出来たので、次々とガイドに従ってセットアップ作業を進めていきます。

途中で下記のように環境変数を設定してね、といったメッセージが出ましたが、何かハマりポイントなのかもと思って無視 :)
For non-homebrew Python, you need to amend your PYTHONPATH like so:
  export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
環境変数を設定しなくても、実はここまではうまくいきました。
さて、最後にbitbucketのリポジトリからTortoiseHgを一式チェックアウトとなります。
$ hg clone http://bitbucket.org/tortoisehg/thg/ ~/Documents/TortoiseHg
なぜ /tmp  とか /usr/local/src とかじゃないのかしら...と思いながらもチェックアウトが完了して、フォルダを見てみると、いろいろ入っています。
さて、最後のコマンドを実行してみると.....

$ ./thg log
Traceback (most recent call last):
  File "./thg", line 44, in
    build_qt(Distribution()).run()
  File "/Users/takano/Documents/TortoiseHg/setup.py", line 215, in run
    self._wrapuic()
  File "/Users/takano/Documents/TortoiseHg/setup.py", line 236, in _wrapuic
    from PyQt4.uic.Compiler import compiler, qtproxies, indenter
ImportError: No module named PyQt4.uic.Compiler
「あらあらどうしよう...」と思ったところで、「環境変数を設定してね」というNoteがあったことを思い出し、.bashrc に設定を追加して、source ~/.bashrc してから再度 ./thg log を実行しました。

4. 起動しましたよ!

./thg log で何が起こるかと思ったら、TortoiseHgが起動しました!


SourceTreeがブルーをベースにしているのに対し、TortoiseHgはグリーンです。見慣れたカメさんのアイコンもDocに表示されました!よくよく考えたら、thg = TortoiseHg のことなんですね。
thgのオプションの"log" は、TortoiseHgのリポジトリのログをデフォルトで表示しているんですね。「へえ〜」と思いながら画面を眺めました。

個人的には、これで十分な位なのですが、ドキュメントの最後にはTortoiseHgをアプリケーションから起動させるための方法が書かれてありました。一応挑戦してみたのですが、/Applications/ フォルダに出来たTortoiseHg.app を入れても、うまく起動してくれません...。
どうも、要求しているPythonのバージョンが違う、前提にしているTortoiseHgのバージョンが違うんじゃないかと思うのですが、ここはひとまず諦めました...。(いくつかIssueに報告が上がっているようです)

5. そういえば日本語化されてない&なにか変....

20121210: 追記
gettextを先に入れてインストールしていれば、多分大丈夫です。下記は、入れ忘れてしまった場合に起きる症状と、対応となります。
アプリケーションからの起動はあきらめ、とりあえずコマンドラインから thg  で起動できるように、パスとシンボリックリンクを調整。
これでいざpushを!と思ったのですが、メニューが日本語化されていないことに気がつきました。設定メニューで調整できるのかなと思ったのですが、選択可能だったのが、en  のみ。
環境変数を切り替えたりしてみましたが、これもうまく行きませんでした。
TortoiseHgをはじめとする、TortoiseXXシリーズは、Windows環境側でもちょこちょこ使っていたので、ここは諦めて、目標のBitbucketにpushするところまで進めます。

5'. gettextを入れていなかった場合の対応方法 (20121210追記)

やっぱり日本語でないと....と思った方。まずはbrew install  gettext を実行します。あとは、TortoiseHgをビルドし直すか、日本語用のmoファイルだけを用意するといった2つの対応があります。今回は後者の対応を付加します。
1. 日本語用のメッセージファイルから moファイルを作成します。(~Documents/TortoiseHg以下にインストールした場合)
$ cd ~/Documents/TortoiseHg/
$ cd i18n/tortoisehg/
$ python ../msgfmt.py ja.po -o tortoisehg.mo

2. 所定のディレクトリに作成したmoファイルを配置します。
$ mkdir -p ~/Documents/TortoiseHg/locale/ja/LC_MESSAGES/
$ cp tortoisehg.mo !$

3.  あとは、LANGUAGE=ja もしくは TortoiseHgの言語設定でjaを指定すればOK。

6. Pushしたいんだけどhttpsからsshに切り替えたい!

だいたいはコードが修正済みで、SourceTree を使ってブランチを切ってpushしていました。あとはほんの少しの修正をし、defaultブランチにマージ、マージ後に、今回入れたTortoiseHgを使ってBitbucketにpushするのがゴールです。

まずはブランチ間のマージが成功。
次にリモートへのpushですが、これが上手く行きません!
どうやらhttpsでpushしに行ってしまうらしく、設定を変えないといけません。
こちらは、TortoiseHgからでも良いですが、ローカルリポジトリのフォルダから $ vi .hg/hgrc でhgrcファイルを編集すればOK。

これでようやく基本の操作ができました....。


* * *
という感じで、無理矢理TortoiseHgアドベントカレンダーに参加させていただく形となりました。結局中途半端で申し訳無いのですが、もう一回インストールしてみてちゃんと日本語メニューが使えそうになったら、再度ご報告したいと思います。
機会を下さった@cointoss1973さま、ありがとうございました!

念のため、現在のバージョン情報をご報告して、まとめとさせていただきます。-> 追記しました!
ちなみに、~Dcoments/TortoiseHg に入ったものは、インストールしたというよりは、リポジトリのソースをそのまま持ってきている感じなので、hg up 2.x  とかするとTortoiseHgのバージョンが切り替えできます。(依存するPythonの関係でちゃんと動くわけではないですが)

$ thg version
TortoiseHg Dialogs (version 2.5.1+29-1f7dfd2a0e6d), Mercurial (version 2.4+20121101)

Copyright (C) 2008-2012 Steve Borho and others.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

0 件のコメント:

コメントを投稿