2013/06/03

TortoiseHg 対応の Exclude エクステンション書いてみた

svn の ignore-on-commit が無くてお困りの方に。
ちょっとした代替手段の提案です。

Mercurial の Exclude エクステンション
http://mercurial.selenic.com/wiki/ExcludeExtension
を改造して、TortoiseHg に対応してみました。

対象: TortoiseHg 2.8, Mercurial 2.6
他のバージョンでは確認していないし、動く可能性も低いと思います。

ここからダウンロード
http://www.codebox.rni.jp/hgext/exclude.py

使用方法:
元の ExcludeExtension をインストールして、exclude.py を差し替えて下さい。
設定方法は元のものと同じです。

TortoiseHg の ciexclude(除外ファイル)とは以下の点が違います。

  • syntax 指定が使えます。(.hgignore と同じ書式です。)
  • exclude されたファイルは、コミットペインに表示されません。 (ciexclude はチェックが外れるだけです。)

Tips:
svn の changeset のように複数のセットを直接定義することはできませんが、カスタムツールと合わせて .hgexlcude を変更することで、(かなり遠いけれどこれまでよりは)近い雰囲気を実現できます。

まずファイルを2つ作っておきます。


.hgexclude.empty
(空のファイル)


.hgexclude.ignore-on-commit
syntax:glob
*/AssemblyInfo.cs



と用意しておいて、

cmd /c copy "{ROOT}¥.hgexclude.ignore-on-commit" "{ROOT}¥.hgexclude"

を実行するカスタムツールと、

cmd /c copy "{ROOT}¥.hgexclude.empty" "{ROOT}¥.hgexclude"

を実行するカスタムツールをそれぞれ作成します。

ボタンを押してから、更新ボタンを押します。