2011-12-07
■ [Memo] VisualStudioのMercurialアドオンHgSccを利用する #MercurialAdventJP 
この記事は、Mercurial Advent Calendar 2011 の7日目の記事になります。
- インフォメーション:本日12月1日より,プログラマ有志による2011年の技術系Advent Calendarが各所ではじまる|gihyo.jp … 技術評論社
- Advent Calendar 2011 (jp) 開催予定リスト - Life like a clown
- Tech Advent Calendar Japan 2011
- 2011年の技術系Advent Calendarを電子出版で提供しませんか? | Gihyo Digital Publishing
昨日(12/6)は@takuan_oshoさんが担当(d:id:kutakutatriangle:20111206:1323168779)でした。
本日(12/7)は私(@you_and_i)が担当になります。本日の内容はMercurial本体に関してではなく、Mercurialを利用したアプリケーションの紹介となります。
Mercurialって?
Mercurialは、数ある分散バージョン管理システムの内の1つです。
HgSccPackageって?
HgSccPackageは、MicrosoftのVisualStudio 2008, 2010, 11(β)向けのアドインで、MSSCC(Microsoft Source Code Control)を経由してVisualStudio上でMercurialによるバージョン管理機能が利用できるようになります。
公式サイト
http://www.newsupaplex.pp.ru/hgscc_news_eng.html
開発リポジトリ
因みに、VisualStudioのSCCインターフェースを利用して実装されているので、VisualStudio上では開発言語に関係無く利用する事が出来ます。私の方ではC++/C#/VB.NETのプロジェクトで利用できる事を確認しています。
導入するには、公式サイトからインストーラーをDownloadしてインストールするだけです。HgSccPackageは、hgコマンドを内部で実行しますので、別途Mercurialのインストール及び環境変数PATHにhgコマンドへのパス登録が必要です。
あと、私個人的な話になりますが、TortoiseHgという便利なツールが存在するのは認識していますが、どうもエクスプローラー拡張の機能が好きになれず、一切使わない派です。
使い方やスクリーンショット
- アドオンを有効にするには、オプションのソース管理にて「Mercurial Source Control Package」を選択します。
- メニューにMercurialが追加されます。
- 編集状態がアイコンで分かります。
- ChangeLog画面
注意事項等
私が使っている中で幾つか気になった点や不具合について書き連ねたいと思います。
- Mercurial
- v2.0.1
- HgSccPackage
- v1.8.5
現時点での最新バージョンで発生・確認しています。
- 問題その1(d:id:youandi:20111101:p1)
- 現象
- コマンドプロンプトと併用していると、hgコマンドの実行結果がVisualStudioの表示に反映されません。
- 原因
- まあ当然です。VisualStudioのMercurialメニューから「Refresh Status」を実行しましょう。
- 現象
- 問題その2(d:id:youandi:20101015:p3)
- 現象
- HgSccPackageアドインを入れたVisualStudio上でファイルの「Annotate File」「View ChangeLog」操作を行うとVisualStudioが落ちる。
- 原因
- 現象
- 問題その3
- 現象
- コミットダイアログにおいて、コミット対象ファイルのチェック状態の挙動がよく分からない。最後に編集していたソースファイルのみがチェックされる。これによりコミット漏れが発生しやすい。
- 原因
- どうあるべきなのかが正解か分かりませんが、最後に編集していたソースファイルのみがチェックされるのはとても使いづらいです。
- 現象
HgSccPackageを自分でビルドする
HgSccPackageは、VisualStduio 2008で開発されています。
プロジェクトは、C++/CLIとC#で構成されており、ビルドするにはVisualStduio 2008 SDKが必要になります。
Visual Studio 2008 SDK 1.1
先に挙げた不具合を修正する為のプログラムの構造解析は、まだまだ調査中です。
最後に
Mercurialはとてもシンプルで使い易くて便利ですねー。大好きです。HgSccPackageもグラフィカルに表示できて便利です。
また、VisualStudioをお持ちでない方も、Windows環境ならば同じ作者の方がHgSccPackageのダイアログ部分を別プログラムに切り出したHgWinというツールもあります。
HgWin - GUI tool for Mercurial version control system (similar to hgtk)
明日(12/8)の担当は@jbkingさんです。宜しくお願い致します。



