Git レビュー、意味ベースの差分、3-way merge のための Unity Editor extension

MergeSight

Unity アセットをレビューしてマージ


変更を理解し、不安なくマージする。

意味ベースレビュー 3-way merge CLI 自動化
Unity 構造の理解 Unity が見る形で変更を確認できます。
安全性を前提に設計 プレビュー、検証、バックアップ。その後で適用。
CLI で自動化 CI チェック、マージドライバー、VCS 連携。

Unity チーム向け。Git に対応。

MergeSight の Unity アセット意味ベースレビュー画面

課題

Unity アセットは通常のテキストレビュー向けには作られていません。

Git が見るのは YAML の行です。Unity チームに必要なのはオブジェクト、コンポーネント、階層、参照、プロパティ変更です。

ノイズの多い YAML

大きなテキスト差分は変更意図を隠します。

リスクの高い競合

手作業の編集はアセットを壊す可能性があります。

コンテキスト不足

Unity の構造は見えにくいです。

CI にはチェックが必要

自動化には決定的な出力が必要です。

Assets/Game/Scenes/MainPreview.unity

GameObject &1001オブジェクト識別
156--- !u!1 &1001
157GameObject:
158 m_ObjectHideFlags: 0
159 m_CorrespondingSourceObject: {fileID: 0}参照
160- m_Name: Main Camera
160+ m_Name: Cameraリネーム
161 m_TagString: MainCamera
164- m_StaticEditorFlags: 0
164+ m_StaticEditorFlags: 1フラグ
165... unrelated serialized fields ...
Camera component &2050分割ブロック
243--- !u!20 &2050
244Camera:
246 m_CorrespondingSourceObject: {fileID: 1001}ソース
249 m_GameObject: {fileID: 1001}接続
251- m_FieldOfView: 60
251+ m_FieldOfView: 45プロパティ
252 m_NearClipPlane: 0.3
253 m_FarClipPlane: 1000

大きな階層変更を伴う実際のシーンリファクタリングでは、raw YAML の中で移動したノード、並び替えられた子要素、プロパティ編集がノイズの多いテキストブロックに混ざります。

階層

YAML の行だけでは配置が見えません。

WorldEnvironmentCamera

参照

fileID のつながりは目視で検証しづらいです。

プロパティ

値は変わっても Unity 上の意図は見えません。

FOV 60FOV 45

コンポーネント

一つの Unity 変更が複数ブロックに分かれます。

GameObjectCamera

複雑な Unity アセットのマージのために設計

Unity アセット変更のレビュー、競合解決、自動化を一つのツールで。

MergeSight は Unity アセット変更の理解からマージ判断の安全な適用までをカバーします。

意味ベースレビュー

Unity の文脈でアセット変更を確認できます。

raw YAML を読まずにシーン、Prefab、階層、コンポーネント、参照、Git コンテキストをレビューできます。

  • 変更アセットブラウザ変更されたシーン、Prefab、アセットファイルにすぐ移動できます。
  • 意味ベースの差分ツリーGameObject、コンポーネント、プロパティ、参照、階層を確認できます。
  • Git 比較モードブランチ、コミット、working tree の変更を一つの画面で比較できます。
  • フィルターと検索アセット種別、パス、Git ステータス、変更量で絞り込めます。
  • レビューのエクスポートMarkdown または JSON の要約をチームに共有できます。
変更された Unity シーンアセットの意味ベースレビュー
変更された Unity アセットのみ実際に変更されたシーンと Prefab から確認できます。
レビュー範囲で絞り込み種別、ステータス、パス、変更量順のソートを使えます。
ブランチとコミットのコンテキストレビュー中も元のリビジョンを確認できます。

3-way merge

コンテキストを見ながら競合を解決。

Base、Ours、Theirs を適切なレベルで選び、結果をプレビューし、必要な判断がすべて解決・検証された後にだけ適用します。

  • Base / Ours / Theirs完全な Unity コンテキストで変更を横並び比較します。
  • 競合の分類競合を自動分類し、リスクをハイライトします。
  • 安全な自動解決安全な判断だけを自動適用し、残りをレビューします。
  • 適用前のプレビュー変更を書き込む前に正確な結果を確認できます。
  • バックアップと検証元ファイルをバックアップし、マージ後に検証します。
MergeSight 3-way merge workflow preview
追跡ノード: 8 競合: 3 自動解決: 5 未解決: 3

CLI 自動化

CI pipeline 向けマージチェック

同梱の .NET CLI で高速な CI チェック、意味ベースのマージ成果物、Git merge-driver mode、外部 VCS 向け merge-tool wrapper を利用できます。

  • CI チェックinspect, check, auto-plan, validate-plan
  • Git merge-driverGit ワークフローから安全な意味ベース判断を実行
  • VCS wrapper外部クライアント向けファイルベースのマージフロー
同梱 .NET CLI
CI 対応
Libraries/StandaloneCLI/bin/mergesight.dll

実行

$ dotnet Libraries/StandaloneCLI/bin/mergesight.dll check

Unity text assets に CI-safe な検証を実行し、未解決または危険な merge 状態があれば失敗します。

merge-check.json 終了コード 0

ワークフロー

raw Unity YAML から信頼できるマージへ。

MergeSight は text-serialized Unity assets を構造化されたレビュー手順に変換し、危険な判断を明示し、プレビューと検証の後にだけ書き込みます。

01

Unity YAML を解析

アセットファイルを安定した Unity 識別子として解析します。

104--- !u!1 &381924
105GameObject:
-m_Name: EnemySpawner
+m_Name: WaveSpawner
131m_Component:
+- component: {fileID: 99172}
148m_LocalPosition: {x: 4, y: 0, z: 2}
02

Unity 構造でレビュー

オブジェクト、コンポーネント、階層、プロパティを確認できます。

S
SampleScene.unityシーンルート
変更あり
G
WaveSpawnerGameObject 名変更
名称変更
C
EnemyWaveControllerコンポーネント追加
add
P
Transform.positionx が 2 から 4 に変更
03

安全にプレビューして適用

変更ファイルを書き込む前に結果を検証します。

OK
安全な判断意図が明確な場合は自動解決します。
5
!
レビューが必要曖昧な競合は表示されたままです。
3
->
プレビュー、バックアップ、検証マージ結果のチェックが通った後にだけ適用します。
準備完了

サポート対象アセットと要件

MergeSight は text serialization を使う Unity プロジェクト向けの Editor / automation ワークフローです。

主なサポート対象

主なサポート対象は以下の text-serialized Unity asset types です。

.unity .prefab .asset .mat

追加の VCS wrapper templates では以下の patterns を含められます: .physicMaterial, .anim, .controller.overrideController.

要件

  • アセットに text serialization を使う Unity project。
  • Git workflow には project checkout からの Git access が必要です。
  • Standalone CLI の利用には compatible .NET runtime が必要です。
  • Editor と automation workflow 向けで、runtime build 向けではありません。

機能一覧

領域 機能 重要な理由
レビュー 意味ベースの差分ツリー オブジェクト単位の変更をすばやく理解できます。
レビュー ブランチ / コミット比較 実際の Git workflow 上で Unity アセット変更をレビューできます。
レビュー 要約のエクスポート 読みやすい変更レポートをチームに共有できます。
マージ 3-way 競合モデル Unity コンテキストで Base/Ours/Theirs を解決できます。
マージ 安全な自動解決 安全と判断できる決定だけをツールに任せます。
マージ プレビューと検証 結果の準備ができてからだけ書き込みます。
CLI CI チェック 自動化で未解決の Unity アセットマージを検出します。
CLI Git merge-driver mode Git から安全な意味ベース auto-merge を使えます。
VCS Wrapper template 一般的な VCS clients 向けにファイルベースの workflow を適用できます。

FAQ

MergeSight は runtime で動作しますか?

いいえ。MergeSight は Editor と automation 用のツールです。runtime package ではなく、player build に含めることを目的としていません。

Web サービスは必要ですか?

いいえ。主要なレビューとマージ機能はローカルで動作します。

すべての merge conflict を自動解決できますか?

いいえ。MergeSight は安全性を重視しています。安全なケースは自動解決できますが、曖昧または未対応の競合では明示的な判断または手動 cleanup が必要です。

どのアセット種別をサポートしていますか?

主なサポート対象は text-serialized Unity assets の .unity、.prefab、.asset、.mat です。

Perforce や Unity Version Control と統合できますか?

Git setup は Editor wizard で利用できます。Perforce、Unity Version Control / Plastic SCM、SVN、generic clients は wrapper templates と外部クライアント設定ガイドでサポートします。

独立したデスクトップ用マージツールはありますか?

いいえ。MergeSight には Unity Editor 内の UI と standalone .NET CLI library が含まれますが、独立した desktop mergetool app はありません。

Asset Store リリースの準備ができたら MergeSight を入手。

ローンチ情報、ドキュメント更新、MergeSight の提供状況を受け取るために email を登録してください。

短いフォームです。spam はありません。ローンチに関する重要な更新だけを送信します。