Hatena::Groupprogram

桜、抹茶、白、日記(支店)

2011-12-07

[] VisualStudioMercurialアドオンHgSccを利用する #MercurialAdventJP はてなブックマーク -  VisualStudioのMercurialアドオンHgSccを利用する #MercurialAdventJP - 桜、抹茶、白、日記(支店)

この記事は、Mercurial Advent Calendar 2011 の7日目の記事になります。


昨日(12/6)は@さんが担当(d:id:kutakutatriangle:20111206:1323168779)でした。

本日(12/7)は私(@)が担当になります。本日の内容はMercurial本体に関してではなく、Mercurialを利用したアプリケーションの紹介となります。


Mercurialって?

Mercurialは、数ある分散バージョン管理システムの内の1つです。

Mercurial SCM

http://mercurial.selenic.com/


HgSccPackageって?

HgSccPackageは、MicrosoftVisualStudio 2008, 2010, 11(β)向けのアドインで、MSSCC(Microsoft Source Code Control)を経由してVisualStudio上でMercurialによるバージョン管理機能が利用できるようになります。

公式サイト

http://www.newsupaplex.pp.ru/hgscc_news_eng.html

開発リポジトリ

hg clone https://bitbucket.org/zzsergant/hgsccpackage

因みに、VisualStudioのSCCインターフェースを利用して実装されているので、VisualStudio上では開発言語に関係無く利用する事が出来ます。私の方ではC++/C#/VB.NETのプロジェクトで利用できる事を確認しています。


導入するには、公式サイトからインストーラーをDownloadしてインストールするだけです。HgSccPackageは、hgコマンドを内部で実行しますので、別途Mercurialインストール及び環境変数PATHにhgコマンドへのパス登録が必要です。


あと、私個人的な話になりますが、TortoiseHgという便利なツールが存在するのは認識していますが、どうもエクスプローラー拡張の機能が好きになれず、一切使わない派です。


使い方やスクリーンショット

  • アドオンを有効にするには、オプションのソース管理にて「Mercurial Source Control Package」を選択します。
    • f:id:youandi:20111206222444p:image
  • メニューにMercurialが追加されます。
    • f:id:youandi:20111206231512p:image
  • 編集状態がアイコンで分かります。
    • f:id:youandi:20111206231513p:image
  • ChangeLog画面
    • f:id:youandi:20111206235302p:image

注意事項等

私が使っている中で幾つか気になった点や不具合について書き連ねたいと思います。

現時点での最新バージョンで発生・確認しています。


  1. 問題その1(d:id:youandi:20111101:p1)
  2. 問題その2(d:id:youandi:20101015:p3)
    • 現象
    • 原因
      • Mercurial.iniにおいて「win32mbcs」エクステンションが有効になっていると発生。
      • とりあえずパッチ的に落ちないようにHgSccPackageの方を修正してみましたが、根本原因は只今調査中です。
  3. 問題その3
    • 現象
      • コミットダイアログにおいて、コミット対象ファイルのチェック状態の挙動がよく分からない。最後に編集していたソースファイルのみがチェックされる。これによりコミット漏れが発生しやすい。
    • 原因
      • どうあるべきなのかが正解か分かりませんが、最後に編集していたソースファイルのみがチェックされるのはとても使いづらいです。

HgSccPackageを自分でビルドする

HgSccPackageは、VisualStduio 2008で開発されています。

プロジェクトは、C++/CLIC#で構成されており、ビルドするにはVisualStduio 2008 SDKが必要になります。

Visual Studio 2008 SDK 1.1

http://www.microsoft.com/download/en/details.aspx?id=21827

インストーラーも作成するならWiXも必要になります。

Windows Installer XML (WiX) toolset

http://wix.sourceforge.net/

先に挙げた不具合を修正する為のプログラムの構造解析は、まだまだ調査中です。


最後に

Mercurialはとてもシンプルで使い易くて便利ですねー。大好きです。HgSccPackageもグラフィカルに表示できて便利です。

また、VisualStudioをお持ちでない方も、Windows環境ならば同じ作者の方がHgSccPackageのダイアログ部分を別プログラムに切り出したHgWinというツールもあります。

HgWin - GUI tool for Mercurial version control system (similar to hgtk)

http://www.newsupaplex.pp.ru/hgwin_news_eng.html



明日(12/8)の担当は@さんです。宜しくお願い致します。