はじめに
チーム開発ではバージョン管理システム及びマージツールは必要不可欠です。
私は普段の開発ではVSCode+GitLensを使用することが多いのですが、Unity純正のバージョン管理システムであるUnity Collaborateを使って開発する機会ができたため、この機会にUnity対応のマージツールを探します。
MacだとApple File Mergeがあるので、今回はWindows対応のものを探します。
前提
要件は、Unity側で対応していること、無料であること、Windowsで使えること。
用途はUnity Collaborateでのソースコードの比較です。
(マージツールの説明についてはWikipediaを参照してください。)
比較対象
Windows版のUnityが対応している比較/マージツールは以下の7種。
- SourceGear DiffMerge
- TkDiff
- Araxis Merge
- TortoiseMerge
- WinMerge
- PlasticSCM Merge
- Beyond Compare 4
その中で無料で使用できるのは
- SourceGear DiffMerge
- TkDiff
- TortoiseMerge
- WinMerge
の4つでした。
(PlasticSCM Mergeはライセンスによって値段が変わり、個人、非営利団体、及びオープンソース開発には無料で用いることができますが、今回は外します)
簡易比較
今回の結果の表です。簡易的に比較します。情報量の多さの参考としてGoogle検索結果の見積もり件数(2020/10/19現在)を載せました。
マージツール | Google検索結果の見積り数 | セットアップの大変さ | Windows以外のOS | 使用感(個人の意見) |
---|---|---|---|---|
(SourceGear) DiffMerge | 約 440,000 件 | 簡単 | 対応 | シンプル |
TkDiff | 約 77,700 件 | 大変 | 対応 | (未使用) |
TortoiseMerge | 約 30,300 件 | やや大変 | 非対応 | 使いやすい |
WinMerge | 約 501,000 件 | 簡単 | 非対応 | まあまあよい |
検証
実際使ってみます。
SourceGear DiffMerge
Mac OSやUbuntu等にも対応しています。
セットアップはホームページからダウンロードしてセットアップウィザードに従うだけなのでとても簡単です。
UIは英語ですが、とてもシンプルなので問題には感じません。
機能としては
- 変更のある行ごとに「変更前のものを適用する」
- 「次の変更に飛ぶ」
- 「前の変更に飛ぶ」
- 「重要でない変更は隠す」(インデント等)
等があります。シンタックスハイライトはなさそうです。
シンプルさが好きでどのOSでも同じものが使いたいというのであればこれを使うのが良いように感じました。
TkDiff
すみません、数時間粘りましたがUnityに認識させることができませんでした。
TkDiffはTcl/Tk環境が必要です。WindowsではTcl/Tk環境がないため、環境構築から始める必要があります。
Tcl/Tk(ティクル・ティーケー)は、スクリプト言語 Tcl と、その GUIツールキット Tk を指す。(Wikipedia引用)
環境構築はActiveTclをダウンロードするか、SourceForgeからソースコードをダウンロードしてコンパイルするなどの方法があります。コンパイル方法については以下のQiitaの記事が参考になります。
Visual Studio 2017でTcl/Tk 8.6.9をコンパイルする
次にTkDiffのダウンロード。
セットアップウィザードはありません。zipファイルをダウンロードして、展開して、ファイル名に拡張子を追加して(tkdiff → tkdiff.tcl)PATHを通したところまでやったのですが、Unityが上手く認識してくれずに断念しました。
Windows以外ならばうまく動くのかもしれません。
TortoiseMerge
Windows専用。
TortoiseSVNという、バージョン管理システム(SVN)のクライアントアプリケーションに付随するソフトで、つまりTortoiseSVNをダウンロードする必要があるっぽいです。余分なものがついてくるので嫌な人は注意。また、日本語化するには追加で日本語化パックをインストールして設定をする必要があります。
これ単体ではググったとき日本語の情報が少ないです。
変更点、追加点が分かりやすく、機能も画像をパッと見て分かる通り豊富です。
UIは4つの中で最も優れているように感じました。簡単に使えます。
WinMerge
Windows専用。日本語の情報が4つの中で最も多いように思えます。
セットアップも簡単です。
※注意:WinMergeは64bit版だとUnity側で認識されなさそうなので注意。Unityで利用する場合は32bit版をダウンロードするようにしてください。
UIはTortoiseMergeには劣りますが(個人の感想です)使い辛いというほどではなく、機能も豊富です。
結論(個人の意見です)
どのOSでも同じものを使いたい or シンプルイズザベスト
→SourceGear DiffMerge
UI命
→ TortoiseMerge
無難に、普通に、楽に使いたい or 日本語の情報が多いものがいい
→ WinMerge 32bit版