eclipse/Mercurial

Last-modified: 2013-01-05 (土) 17:23:52

MercurialEclipseプラグインを使う

インストール (MercurialEclipse 2.0.1 + Eclipse 3.7)

Windows用のmercurialが別途必要。事前にTortoiseHGをインストールする。今回は2.6.2(x64)を使用。

http://tortoisehg.bitbucket.org/ja/

エクスプローラーでのコンテキストメニューが不要な場合は、カスタムインストールでShell Extensionをはずす。

MercurialEclipseのサイトは次のとおり。

https://bitbucket.org/mercurialeclipse/main/wiki/Home

MercurialEclipseにhgコマンドの所在を教える。

  • ウィンドウ>設定
  • チーム > Mercurial
  • Mercurial 実行可能ファイルにhg.exeのパスを指定(ex. C:\Program Files\TortoiseHg\hg.exe )

コメントに日本語を使用しても問題ないようだが、Shift_JISで記録されているのかそうでないのかは未確認。

インストール (MercurialEclipse 1.7)

本家からプラグインをダウンロード。Windows用バイナリも添付されているらしい。

http://javaforge.com/project/HGE
(http://www.vectrace.com/mercurialeclipse/ から たどれる)

上記の説明に従い、EclipseのSoftwre Updatesに以下のURLを指定してダウンロード。
http://cbes.javaforge.com/update

説明では事前にJavaForgeへのログインが必要だと記載されているが、実際にはログインせずにダウンロードできる。

mercurialeclipseinstall.png

インストール (古い)

Windows + eclipse 3.5 の場合。

mercurial本体

本家からWindows用バイナリをダウンロード、インストール。

http://mercurial.selenic.com/

※ ひょっとすると別途Pythonが必要??

PATHにmercurialインストール先を追加(インストーラがやってくれる)

インストール確認は、コマンドプロンプトで hg を実行して、ヘルプが表示されるかを確認する。

プラグイン

以下のサイトに記載のとおり。

http://www.vectrace.com/mercurialeclipse/

eclipse 3.xの場合、

使用方法

本家マニュアル参照

http://bitbucket.org/mercurialeclipse/main/wiki/First_steps

常にエラー

(MercurialEclipse 1.7.1)
consoleに常に以下のエラー

 abort: unknown encoding: windows-31j, please check your locale settings

以下の方法で解決

  • Windows > Preferences > General > Workspace の Text File EncodingでOtherを選択しUTF-8と指定。

コミット時のコメントが日本語だと失敗する

(MecurialEclipse 1.4.1286で確認)

ダイアログには以下のメッセージが表示される

 transaction abort!
 rollback completed

consoleには以下が出力される。

 abort: decoding near 'xxxx': 'utf8' codec can't decode byte 0x83 in position 0: unexpected code byte!

.hg/hgrcに以下の設定をすることで回避できる。

[defaults]
commit = --encoding cp932

HGENCODINGを設定するのが正攻法らしいが、効果なし。

set HGENCODING=cp932

なお、eclipseを使わず、コマンドプロンプトからhg commitを実行する場合にはこの問題は発生せず。

push先がhttpsでかつユーザー認証ありだと接続に失敗

(MecurialEclipse 1.4.1286で確認)

事前に.hg/hgrcに接続先を設定することで回避できた。

[paths]
default = https://name:pass@host.example.com/path/