プロジェクトの比較とマージ
比較機能を使うと、2つのプロジェクトの違いを正確に確認でき、安全にコピーできる部分については、一方のプロジェクトからもう一方へ選択した変更をマージできます。日常的に発生する次の2つの場面を想定しています。
- 環境間での変更の昇格 — QA(開発)プロジェクトと対応する本番プロジェクトの違いを確認し、必要な変更だけを本番に反映します。
- 以前のスナップショットやコピーとの照合 — プロジェクトを自身のコピー(たとえば月次のクローン)と比較して、何が変わったかを確認します。
操作は常にあなたの管理下にあります。特定の項目を選択して適用するまで何も書き込まれず、事前にドライランで検証することもできます。
照合の仕組み
Section titled “照合の仕組み”2つのプロジェクトを比較するには、PlaidCloudが左側のどの項目が右側のどの項目に対応するかを判断する必要があります。この方法は自動的に選択されます。
- 同じプロジェクトのコピーやスナップショットは、内部ID(クローンは同じIDを保持します)で照合されるため、名前が変更された項目でも正確に対応付けられます。
- 独立したプロジェクト(たとえばQAプロジェクトと、別に作成された本番プロジェクト)はIDを共有しないため、名前で照合されます。この場合、項目には
(name-matched)というタグが付きます。
名前による照合は、2つのプロジェクトが別々に作成されている場合のQAから本番への比較を実用的にするものですが、限界もあります。名前が重複する項目は1対1で対応付けられないことがあり、ambiguous match と表示された項目は、同じ名前の候補が複数あったことを意味します。マージする前に手動で確認してください。
3つ目の照合方法として、一方のプロジェクトがもう一方からのコピーで作成された場合に、その記録されたコピーの系譜で対応付ける方法があります。名前を変更したコピーでも元の項目と対応付けられます。これは自動では選択されず、再同期先… で指定します。詳しくはコピー元のプロジェクトからの再同期を参照してください。
- Analyzeを開きます
- 上部のメニューバーからプロジェクトを選択します
- 比較の起点にするプロジェクトを右クリックし(またはそのアクションメニューを使用し)、比較先… を選択します
- プロジェクトを比較ウィンドウでは、起点にしたプロジェクトがソースとして入力されています
- ドロップダウンからターゲットプロジェクト(比較対象のプロジェクト)を選択します
- 比較をクリックします
2つのプロジェクトは同じワークスペースにある必要があります。
比較結果の見方
Section titled “比較結果の見方”左側には、すべての差分がカテゴリー別にグループ化されて表示されます。ワークフロー(その下にステップがネストされます)、変数、ディメンション、エディター、UDF、ビュー、テーブルです。
各項目には、ステータスを示すバッジが付きます。
- 追加 — ソースにあり、ターゲットにない項目(ターゲットに作成されます)
- 変更済み — 両方にあるが、構成が異なる項目
- 削除 — ターゲットにあり、ソースにない項目
- 変更なし — 両側で同一の項目(デフォルトでは非表示)
変更のある項目を選択すると、右側にその詳細が表示されます。何が変わったかを示すフィールド / ソース / ターゲットの表と、その下に構成の差分の全体が表示されます。項目の差分が非常に大きい場合は省略されます。差分全体を展開をクリックすると、完全なバージョンが読み込まれます。
一覧の絞り込み
Section titled “一覧の絞り込み”- 名前またはパスでフィルターを使用すると、ツリーが一致する項目に絞り込まれます。
- ステータスのチェックボックスで、追加、変更済み、削除、変更なしの項目の表示と非表示を切り替えます。
- 手動対応が必要を選択すると、自動ではマージできない変更だけが表示されます(以下を参照)。
マージできるもの
Section titled “マージできるもの”すべての差分をプロジェクト間で安全にコピーできるわけではありません。比較では各項目にラベルが付くため、マージ可能なものを常に把握できます。
- ワークフロー、ステップ、変数はマージできます。
- ディメンション、エディター、UDF、ビュー、テーブルは表示専用です。確認のために比較結果には表示されますが、ここからではなく、それぞれ専用のツールでコピーします。
マージ可能なカテゴリーであっても、自動適用が安全でないため、個々の変更が手動(ロック付き)とマークされる場合があります。詳細ペインに、その理由と代わりに行うべき操作が説明されます。最も一般的なケースは次のとおりです。
- 名前で照合された(QAと本番の)比較のステップは確認専用です。ステップの構成には環境固有の接続やエージェントが参照されている場合があるため、手動でコピーします。ターゲットで何を変更すべきかを正確に把握するには、差分を使用してください。
- 変数の削除は自動では適用されません。ターゲットプロジェクトで変数を手動で削除してください。
サマリー行には、たとえば*「マージ可能 12件 · 表示専用 5件」や「手動対応が必要 3件」*のように、内訳が一目でわかるように表示されます。
変更のマージ
Section titled “変更のマージ”- ソースからターゲットへコピーする項目を選択します。すべて選択を使用すると、現在表示されているマージ可能な項目がすべて選択されます。個々の行を複数選択することもできます。表示専用の項目と手動の項目は選択できません。
- ドライランをクリックすると、何も書き込まずに選択内容を検証します。PlaidCloudは、適用される操作の数(新規と更新)を報告し、失敗する操作があればそれを示します。
- ドライランの結果に問題がなければ、(ドライランの結果またはフッターから)適用をクリックします。
- マージの確認ダイアログで操作を確認します。
マージされた項目はターゲットでもIDを維持するため、後で再度比較して、重複を作成することなく追加の変更をマージできます。
問題が発生した場合
Section titled “問題が発生した場合”- ターゲットが変更されました — 比較を読み込んだ後に他のユーザーがターゲットを変更した場合、その作業を上書きしないよう、マージは停止します。比較を更新して、もう一度適用してください。
- マージは一部のみ適用されました — 途中で1つの操作が失敗した場合、残りの操作は未実行として報告されます。原因を解決して残りを再試行を選択するか、キャンセルして更新してください。
コピー元のプロジェクトからの再同期
Section titled “コピー元のプロジェクトからの再同期”比較は、ワークスペース内の任意の2つのプロジェクト間で行えます。ただし、ターゲットが既存のプロジェクトへのプロジェクトをコピーでソースからコピーして作成された場合、PlaidCloudはターゲットのどのオブジェクトがソースのどのオブジェクトから来たかを記憶しています。再同期はこの記憶を使って、IDや名前から推測するのではなく、実際の関係に沿って2つを比較します。
これにより、1つのテナントで開発、QA、本番を別々のプロジェクトとして保持し、それらの間で変更を順に昇格させることができます。開発をQAに一度コピーしておけば、以後はQAを開発に対して再同期することで、開発側でその後に変わった内容だけが表示され、選択した部分をQAに反映できます。その後、同じ方法でQAを本番に反映します。エクスポートもアーカイブも、別のワークスペースも必要ありません。
独立して作成された2つのプロジェクトを通常どおり比較する場合、IDを共有しないため、項目を名前で対応付ける必要があります。これは、コピー時に何かの名前が変更されるまでは問題なく機能します。プロジェクトをコピーした際にターゲットにすでに同じ名前やIDのオブジェクトが存在していた場合、取り込まれるオブジェクトには新しいID( copy が付加されます)が与えられます。そのため、通常の比較では名前が変更されたコピーがソースの元のオブジェクトと無関係に見え、ソースの項目は追加、ターゲット内のそのコピーは削除として並んで表示されます。同じオブジェクトの二つの片割れを見ているのに、それらを対応付ける手段がありません。
再同期では、記録されたコピーの系譜、つまり由来によって対応付けるため、名前や番号が変更されたオブジェクトでも元のオブジェクトと対応付けられ、実際の変更だけが差分として表示されます。
再同期の実行
Section titled “再同期の実行”- Analyzeを開きます
- プロジェクトを選択します
- コピー元のプロジェクト(ソース、たとえば開発)を右クリックするか、そのアクションメニューを使用して、再同期先… を選択します
- 以前にコピー先としたターゲット(たとえばQA)を選択します
- 再同期をクリックします
ウィンドウは通常のプロジェクトを比較ウィンドウと同じで、比較結果の見方、マージできるもの、変更のマージの内容はそのまま当てはまります。異なるのは、項目の対応付けの方法だけです。
利用できる系譜がない場合
Section titled “利用できる系譜がない場合”再同期には、2つのプロジェクト間で記録されたコピーが必要です。プロジェクトのコピーで接続されたことがない(または一部しか接続されていない)ペアを再同期した場合、PlaidCloudは取り繕うことなくそのことを通知します。
- 系譜がまったくない場合 — 比較が通常の対応付けにフォールバックしており、再同期ではないことを示すバナーが表示されます。以前のコピーで名前が変更されたはずの項目の追加と削除への分かれ方も含め、通常の比較とまったく同じ動作になります。無関係な2つのプロジェクトや、プロジェクトのコピーではなくアーカイブのインポートで接続されたプロジェクトのペアを再同期した場合に、この表示になります。
- 系譜が部分的な場合 — コピーが一部のカテゴリーしか対象にしていない場合は、フォールバックしたカテゴリーを示すバナーが表示されます。それらのカテゴリーは名前で対応付けられ、QAと本番の比較と同じ安全な範囲がマージされます。変数とワークフローのレコードの変更は反映されますが、ステップと新しく追加されたワークフローは確認専用になります(マージできるものを参照)。
いずれの場合も、実際に得られた対応付けがウィンドウに表示され、マージされます。系譜で照合したと表示しながら、黙って名前による照合に格下げされることはありません。
- プロジェクトの管理 — 単一のプロジェクト内でのバージョン管理と時点追跡
- プロジェクトのアーカイブ — 後で比較できる時点のスナップショットの取得
- ワークフロー — 比較によってプロジェクト間でマージされる自動化の基本要素