ドキュメントの検索
karat

+

K

APIリファレンス ↗

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

アプリケーション変更のマージ

複数のコラボレーターが単一の Slate アプリケーションで作業する際、バージョン管理を維持するために変更をマージする必要があります。バージョン管理は、2人以上のユーザーが同時にアプリケーションの同じバージョンを編集し始め、両方が変更を保存しようとする場合に必要となります。2回目の保存が、最初の保存によって古くなったバージョンに基づいているため、ユーザーの変更が失われることなく通常どおりアプリケーションを保存することはできません。この状況を解決するために、2番目のユーザーは以下のオプションから選択する必要があります。

  • 自分の変更を破棄する。
  • 最初のユーザーの変更を上書きする。
  • 別の名前でアプリケーションを保存する。
  • 最初のユーザーの変更と自分の変更をマージする。

以下のセクションでは、マージプロセスについて説明します。

マージの競合

マージの競合は、同じ要素が複数のユーザーによって変更または削除された場合に発生します。例えば、ウィジェットが1人のユーザーによって削除され、別のユーザーによって変更された場合、競合が発生します。競合のもう1つの例は、両方のユーザーが同じクエリを変更する場合です。

競合は、マージ可能なウィジェット ID が衝突し、ユーザーがどちらかのバージョンを選択する必要がある場合にも発生します。アプリケーション開発者がセマンティックなウィジェット名の適用というベストプラクティスに従わず、デフォルトのウィジェット名に依存している場合、この競合がより一般的に発生することがあります。

競合がない場合

保存時に競合が検出されない場合、Slate は自動的にアプリケーション JSON をマージし、マージされたアプリケーションのプレビューを表示します。変更に満足した場合は、承認して保存を選択してください。訂正が必要な場合は、変更を行うを選択して JSON を表示および編集します。

競合を伴うマージ

保存時にマージの競合が検出された場合、変更の JSON ビューが表示されます。マージビュー内では、別のユーザーによる変更、マージ結果、ユーザーの変更がそれぞれ別のペインに表示されます。競合が特定された場合、Slate は要素内のマージ変更を試みず、デフォルトで他のユーザーの変更を含めます。

競合がある場合は、以下の手順を実行します。

  1. Conflict タグのある要素を選択して、競合に移動します。
  2. 結果として得られる JSON を変更し、ユーザーの変更と他のユーザーの変更の両方から保持したい変更が含まれるようにします。
  3. マージ結果に満足したら、解決済みとしてマークを選択します。

すべての競合が解決され、JSON 変更に満足したら、最終結果のプレビューを選択します。マージされたアプリケーションのビジュアルプレビューが表示され、アプリケーションを保存するオプションが提供されます。

競合を伴うマージの例

この例では、ユーザー A がチャートの Y 値を変更します。

merge-chart-edit1

次に、ユーザー B が同じウィジェットのシリーズの色を変更します。

merge-chart-edit2

ユーザー A が保存し、ユーザー B が保存すると、ユーザー B は次のプロンプトが表示されます。

merge-prompt

ユーザー B が マージ... ボタンを選択すると、マージインターフェースが表示されます。この初期ビューでは、Slate アプリケーション全体の比較(いわゆる "diff")が表示されます。ユーザー B は、左側のメニューを使用して特定の要素を選択できます。

merge-json-initial

競合のある要素に移動すると、それらの変更にだけフォーカスが当たります。ユーザー B の変更はまだマージされていないことに注意してください。ユーザー B は、保持したい変更をマージ結果ペインにコピーする必要があります。

merge-json-conflict

ユーザー B がマージ結果ペインに保持したい変更をコピーすると、以下のようになります。

merge-json-pick

マージ結果ペインの内容に満足したら、ユーザー B は 解決済みとしてマーク を選択します。

ユーザー B がすべての競合を解決し、最終結果のプレビューを選択すると、ユーザー B はマージされたアプリケーションのビジュアルプレビューを表示します。

merge-preview

マージされた Slate アプリケーションは、両方の変更から属性があることに注意してください。