| MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > TortoiseHg からの利用 | << | >> |
本ページでは、TortoiseCVS や TortoiseSVN と同様の UI を、 Mercurial リポジトリで使用可能にする TortoiseHg に関する情報をまとめてみました。
インストールに関しては、 TortoiseHg のサイトからインストーラをダウンロードして実行すれば、 特に問題なくインストールできる筈です。
TortoiseHg には Windows バイナリ版の Mercurial(= hg.exe コマンド)が同梱されていますので、 TortoiseHg を使用するのであれば、 Cygwin Python スクリプト版との併用は避けたほうが良いでしょう。
なお、hgrc の man における "FILES" 節では、 Windows バイナリ版での設定通用範囲が:
C:\Mercurial\Mercurial.ini
と記述されていますが、実際には:
ですので、設定の際には注意しましょう。
TortoiseHg のメニュー表示は概ね対応する hg コマンド名に類するものですが、 一部表現が異なるものがある(CVS や Subversion 由来なのでしょうか?)ため、 構成管理の一般的な用語に馴染みの無い人などは、 所望の機能が使えないと思い込んでしまう場合もあるようです。
以下に TortoiseHg 0.3 版時点でのメニュー表示と hg コマンドの対応関係を示します。
| メニュー表記 | 対応する hg コマンド |
|---|---|
| View File Status | status |
| Visual Diff | diff |
| Add Files | add |
| Remove Files | remove |
| Undo Changes | revert |
| Annotate Files | annotate |
| Checkout Revision | update -r リビジョン |
| Merge Revisions | merge -r リビジョン |
| View Changelog | log |
| Search Repository | grep |
| Synchronize |
別途表示されるダイアログ上で以下を選択
|
| Recovery |
別途表示されるダイアログ上で以下を選択
|
| Web Server | serve |
| Create Clone | clone |
| Settings | showconfig |
TortoiseHg 利用の際には hg コマンドが Explorer 経由で起動されるため、 プロセス起動順序の関係上、 その延長で起動される ssh クライアントからは win-ssh-agent が設定する環境変数を参照することができず、 結果として win-ssh-agent + Cygwin ssh を利用したリポジトリ連携 (e.g.: push/pull)ができません。
注意: win-ssh-agent 起動後に開いた Cygwin コンソール (ないし所謂「DOS 窓」)から TortoiseHg 同梱の hg コマンドを起動した場合は、 win-ssh-agent の設定した環境変数を参照可能ですので、 win-ssh-agent + Cygwin ssh を利用したリポジトリ連携が可能です。
たとえこの状況での連携が機能している場合であっても、 Explorer から TortoiseHg を利用した場合には、 win-ssh-agent + Cygwin ssh によるリポジトリ連携は機能しません。
Tortoise〜を利用する場合、 PuTTY を使用するが一般的(TortoiseHg にも同梱されています)なようですが、 Windows レジストリから読み込んだ環境変数を取り込む win-ssh-wrap を使用すれば、 TortoiseHg を win-ssh-agent + Cygwin ssh と連携させることができます。
win-ssh-wrap のインストールを終えたなら、 設定ファイルに対して:
[ui]
ssh = C:\cygwin\root\usr\local\bin\w-ssh.exe
上記の記述を追加します。
記述追加先となる設定ファイルは、 各自の事情に応じて:
Mercurial.ini)
C:\Documents and Settings\USERNAME\Mercurial.ini"
ないし "%HOME%\Mercurial.ini")
.hg/hgrc)
のいずれかを選んでください。
上記の記述例は、C:\cygwin\root が
Cygwin インストール先のルート位置、
win-ssh-wrap のビルドにより生成された *.exe ファイルのインストール先が
(Cygwin 上における)/usr/local/bin
配下の場合の記述です。
各自の環境・インストール先に応じて適宜記述内容を変更してください。
また、Windows バイナリ版向けの設定ですから、
パス区切りにはバックスラッシュを用いてください。
なお、 ssh のマニュアル上は、「SSH_ASKPASS 環境変数が設定されている場合は、 当該プログラムを起動することでパスフレーズを取得」できることになっていますが、 この仕組みはCygwin 環境では機能しません。 そのため、ssh-add していない秘密鍵が必要な ssh 接続を行った場合、 ssh プロセスがパスフレーズ入力待ちでブロックしてしまいます。
Windows タスクマネージャ上で CPU ・ネットワーク共に使用している兆候が見られないにも関わらず、 TorotiseHG 経由でのリモートリポジトリとの連携が完了しない場合、 ネットワークやサーバの性能が余程低く無い限りは、 ssh がブロックしてしまっている可能性があります。 この場合は、タスクマネージャから ssh プロセスを終了させたうえで、 当該リポジトリとの連携に対するパスフレーズ入力の要否を、 コマンドラインでの ssh 実行により確認してください。
| MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > TortoiseHg からの利用 | << | >> |