マージすると、ブランチ上のテストとフローのバージョンがmasterに保存されます。ブランチでテストまたはフローを編集した後に、誰かがmasterでそのテストまたはフローを更新した場合、マージに競合が発生します。その場合は、どちらの変更も失わないように、両方の変更をどのように調整するかを決める必要があります。
この記事では、次の方法を説明します。
マージする前に
[ブランチの詳細] ビューを開いて、競合がないか確認します。[ブランチの詳細] ビューには、ブランチのテストとフローのサマリーが表示されます。[コンフリクト] 列に赤い感嘆符アイコンが表示されている場合は、ブランチで最後のバージョンを保存した後に、誰かがmasterでそのテストまたはフローを更新しています。
[ブランチの詳細] ビュー
マージ前の変更内容に関するフィードバックを残すには、ブランチバージョンへのコメントをご覧ください。比較ビューのコメントスレッドを使用すると、マージ前に変更内容についてチームと認識を合わせることができます。
ブランチのマージ
[ブランチの詳細] ページで [ブランチをマージ] をクリックして、マージを開始します。
- 競合がない場合は、[今すぐマージします] をクリックします。
- 競合がある場合は、マージダイアログに競合しているテストとフローが一覧表示されます。次の3つのオプションから選択します。
| オプション | 詳細 |
|---|---|
| アシスタントを使用してマージ | mabl アシスタントがmasterの新しい変更をブランチのバージョンに追加し、テストを実行して、成功した時点でマージします。 |
| コンフリクトを解決 | 競合の解決ビューで、ブランチとmasterのバージョンをステップごとに自分で調整します。 |
| とりあえずマージします | ブランチのバージョンが新しいmasterバージョンになり、masterの新しい変更は置き換えられます。 |
アシスタントを使用してマージ
マージダイアログで [アシスタントを使用してマージ] をクリックすると、mabl アシスタントがmasterとブランチの変更を統合し、結果を確認して、ブランチをマージします。マージの進行状況を確認するには、[アシスタントのセッションを表示] をクリックします。
競合しているテストまたはフローごとに、アシスタントは次のことを行います。
- ブランチの作成以降にmasterで変更された内容と、ブランチで変更された内容を比較します。
- masterの変更をブランチのバージョンに追加します。両方で同じステップが変更されている場合は、テストの目的とそれぞれの編集についての情報をもとに、何を残すかを判断します。
- 更新したバージョンを読み直して、変更が保存されたことを確認します。
- ブランチでテストを実行します。フローの場合は、そのフローを使用するテストを実行します。
競合しているすべてのテストとフローの調整が完了し、テストが成功すると、アシスタントはブランチをmasterにマージします。アシスタントがテストまたはフローを調整できない場合や、テストが成功しない場合は、処理を停止し、対応が必要なテストまたはフローを報告します。その場合は何もマージされず、masterは元のままです。
コンフリクトを解決
競合を自分で調整するには、マージダイアログでテストまたはフローの横にある [コンフリクトを解決] をクリックするか、[ブランチの詳細] ビューの [コンフリクト] 列にある赤い感嘆符アイコンをクリックします。どちらの場合も、競合の解決ビューが開きます。
競合の解決ビュー
競合の解決ビューには、以下のセクションを含む3列のテーブルが表示されます。
- masterバージョン: テストブランチに存在しないステップが赤で表示されます。
- 新しいバージョン: マージする前にテストブランチに保存する新しいバージョンを作成するためのスペースです。
- テストブランチバージョン: masterブランチに存在しないステップが緑で表示されます。
白で表示されるステップはmasterとテストブランチのバージョンに存在し、変更できません。
新しいバージョンを作成するには、矢印をクリックして、ステップとフローを新しいバージョンの列に移動します。データ駆動型変数とフローパラメーターに競合が存在する場合、競合の解決ビューには、新しいバージョンで使用する変数や値を選択するためのオプションも表示されます。
新しいバージョン用に選択したステップ、変数、パラメーターに問題がなければ、[プレビュー] をクリックして、最終バージョンを確認します。必要な場合は、前の編集ページに戻って、変更を加えることができます。何も問題がなければ、[保存] をクリックして新しいバージョンをテストブランチに保存し、ブランチをマージします。
とりあえずマージします
ブランチのバージョンをそのままマージするには、[とりあえずマージします] をクリックします。mablはブランチのバージョンを新しいmasterバージョンとして保存し、masterの新しい変更を置き換えます。以前のmasterバージョンは変更履歴に残るため、必要に応じて元に戻すことができます。
mabl CLIまたはAIクライアントからマージする
mabl CLIや、mabl MCPに接続したAIクライアントからブランチをマージすることもできます。
mabl CLIでは、mabl branches merge を使用します。CLIは、masterだけでなく任意のブランチにマージできます。競合の扱いは、使用するオプションによって異なります。
- オプションを指定しない場合、CLIは とりあえずマージします と同様に、ブランチのバージョンをマージ先のブランチの最新バージョンとして保存します。
-
--fast-forward-onlyを指定すると、競合がある場合にCLIはマージを拒否します。 -
--agenticを指定すると、競合がある場合にCLIはアシスタントによるマージを開始します。マージ先はmasterのみです。branch_mergedがtrueになるまで、mabl branches merge-status --from {branch} --session-id {session-id}でセッションを追跡します。
マージ前に競合を確認するには、mabl branches merge-status --from {branch} を実行します。すべてのオプションについては、mabl CLIコマンドリファレンスを参照してください。
mabl MCPでは、ブランチをマージし、競合がある場合はmabl アシスタントに調整させるようAIクライアントに依頼します。例:
mablのブランチ promo-update をmasterにマージしてください。競合がある場合は、mabl アシスタントに調整させてください。
AIクライアントは、アシスタントによるマージを開始する前に確認を求めます。承認しない限り、競合のあるブランチはマージされません。使用されるツールについては、mabl クラウド MCP ツールを参照してください。
マージした後
ブランチがマージされると、変更履歴で新しいバージョンに「Merged X into master」というラベルが付きます。
マージしたブランチを再び開いたり、マージしたブランチに対してテストを実行したりすることはできません。
マージの取り消し
テストまたはフローのマージ後のバージョンが意図しない結果に終わる場合があります。マージしたブランチバージョンからテストとフローのすべてを復元することはできませんが、次の手順で個々のテストまたはフローを以前のバージョンに復元できます。
- 元に戻したいテストまたはフローの詳細ページにアクセスしてください。
- [変更履歴] タブをクリックします。
- 復元するバージョンを選択します。
- [最新として保存] ボタンをクリックします。
このプロセスは、復元するマージしたテストおよびフローごとに、別々に実行する必要があります。
ブランチの削除
ブランチはmasterにマージした後も、[ブランチ] ページに引き続き表示されます。ブランチを削除するには、ブランチの横のゴミ箱アイコンをクリックします。
一度ブランチを削除すると、元に戻すことはできません。
制限事項
- APIテストでは競合の解決はサポートされていません。
- mabl Desktop App では、テストブランチからマスターブランチへのマージのみサポートしています。他のテストブランチへの変更のマージや、マスターブランチの最新の変更をテストブランチに取り込むことは、Desktop App ではできません。
- アシスタントを使用してマージはブラウザーテストのみをサポートし、マージ先はmasterのみです。