複数人からなるチームでプログラムを開発していて困ることの一つに、プログラムの修正の衝突があると思います。
最近はSubversionやGitといったバージョン管理ツールが充実してきたとはいえ、修正の衝突が起こった場合、テキストベースのマージツールで地道にソースコードを修正していくしかありませんでした。これはめんどくさく、まちがいが起こりやすく辛い作業です。
「Semantic Merge」はそのようなめんどくさいマージ作業を簡単確実に実行するために開発されました。プログラムの中身を解釈してSemanticにマージを実行してくれるということなので、驚きですね。
使用例
例えば、Develope1が、SocketクラスをServerSocketクラスとDNSクラスに分割、Developer2がClientSocketを追加した場合でも、Semantic Mergeは適切にコードを解釈してうまくマージしてくれるようです。
もっと簡単な例だと、src、dstの別の場所にnew_method()を追加してもマージしてくれるということですね。
現在はベータ版Windows/C#のみ
ためしにベータ版をダウンロードして実行してみました。
通常のマージツールと異なり三個のファイルを設定します。
サンプルファイルがついているので実行してみることができます。さきほどのSocketのサンプルファイルもついているので、ちゃんと動くかどうか確認することができます。
現在はベータかつWindows版のみダウンロードすることができ、言語もC#/VB.NETのみです。将来的にはMac/Linux、言語的にもJava、C、C++、Objective-C、JavaScriptなどへの対応が予定されているそうです。価格は未定のようですがリーズナブルな価格で提供されれば、便利なツールになるのではないでしょうか?注目したいと思います。