2025.02.17

TerraSkyのSalesforce担当者がFlosumを使ってみた② Branch のマージ機能「Smart Merge」

はじめに

Salesforceにおける開発 にてプロジェクトを複数チームで進行している場合等、リリース資材が競合することがあると思います。

そんなときはFlosum の機能「Smart Merge」を使って、競合した資材を1つにまとめることができます。

今回は、実際に「Smart Merge」を実施する操作の流れをご紹介いたします。

前提条件(やりたいこと)とFlosum の操作の流れ

◆前提条件(やりたいこと)
 2つの開発組織からBranchを作成、同じリリース資材にて異なる変更を加えていることが発覚した。
 重複しているリリース資材について、どちらの変更も取り込んだ形で1つのBranchへまとめたい。

◆Flosum の操作の流れ
 ・Org接続
 ・Snapshot作成
 ・Branch作成
 ・Branch内容確認
 ・Branchのマージ(Smart Merge)

Org接続、Snapshot作成、Branch作成

最初に、2つの開発組織からそれぞれBranchを作成する必要があります。
Branch作成までの手順につきましては別記事の内容と重複するため、今回は割愛いたします。
詳しくは、こちらの記事をご参照ください。

Branchの内容確認

ここで今回のBranch の内容を簡単にご説明いたします。

1つ目のBranchの内容

 ・公開グループ : TstGrp1
 ・権限セット1 : TstPermission1
 ・権限セットグループ : TstPermissionGrp1

2つ目のBranchの内容

 ・公開グループ : TstGrp1
 ・権限セット1 : TstPermission1
 ・権限セット2 : TstPermission2
 ・権限セットグループ : TstPermissionGrp1

Branch の差分

資材の差分は以下の図の通りとなります。

・権限セットの権限付与内容
・権限セットグループに含まれる権限セットの内容
 (公開グループは一致)

今回はBranch1 と Branch2 をマージした、新規 Branch を作成します。
権限セットの権限内容は、基本的にはどちらかに権限付与されているものはマージ後のBranch でも権限付与を残したものにします。
例外として、取引先オブジェクトのオブジェクト権限のうち、削除は付与しないよう設定します。
(権限付与しない方へ寄せます)

Branch のマージ(Smart Merge)

ここからは、今回の本題であるBranch のマージについて具体的な操作に入っていきます。

マージ先のBranch作成

まずは1つ目のBranch の詳細画面を開き、画面上部の「Smart Merge」をクリックします。

Merge Branches 画面が表示されるので、Merge先として新規Branchを指定します。
名前は「FlsmTest_Merge」にして、画面右上の「Merge To Branch」をクリックします。
この操作で「FlsmTest_Merge」というBranchが作成されます。

2つ目のBranch をマージ

2つ目のBranchの詳細画面を開き、画面上部の「Smart Merge」をクリックします。
Merge Branches 画面が表示されるので、Merge先として既存Branchを選択し、先ほど作成した「FlsmTest_Merge」を指定します。

差異があるメタデータが一覧で表示されますので、Status列 の表示をクリックしてマージ処理を実施していきます。

2つのBranch で内容一致しているコンポーネントについては最下段のリストに表示されます。
今回は公開グループ:TstGrp1 が2つのBranch にて内容一致するため、
マージ対象外として表示されています。

権限セット1のマージ

差分比較

Merge Branches 画面でStatus列 の「Conflict, Changed by same User」をクリックすると、2つのBranch のメタデータ詳細が表示され、差分は色分けして表示されます。

緑 : Source に選択したBranch2(左側)だけに存在する行
赤 : Target に選択したマージ先のBranch (右側)だけに存在する行
黄 : 2つのBranch で同一行内に差分がある箇所

差分マージ

差分箇所を確認したら、以下の通りマージを実施します。

1つ目はアプリケーションの差分です。
今回は両方とも権限付与したいため、「Standard__Sales<セールス>」の記載部分を左側へ反映します。

2つ目は取引先オブジェクトの項目権限の差分です。
Fax」は左側のみ、「Phone<電話>」は右側のみに存在しますが、今回は両方とも権限付与したいため、「Phone<電話>」の記載部分を左側へ反映します。

3つ目は取引先オブジェクトのオブジェクト権限の差分です。
ここでは3つの権限に差分が確認できます。

 allowCreate:作成
 allowDelete:削除
 allowEdit:編集

今回は作成、編集を許可(true)とし、削除は禁止(false)としたいため、allowEdit の権限のみ左側へ反映します。

4つ目はシステム権限の差分です。
今回はシステム権限を付与したいため、左側に残したままとします。

 ・ViewRoles : ロールおよびロール階層を表示
 ・ViewSetup : 設定・定義を参照する

権限セット1のマージ結果

権限セット1のマージ結果は以下の通りになります。

確認後、画面下部に表示されている「Save」をクリックすると、差分反映の結果が保存されます。
操作を誤ってしまった等で操作前の状態からやり直したい場合は、「Cancel」をクリックすると前の画面(Merge Branches 画面)へ戻ることができます。

権限セット2のマージ

権限セット2 のStatus列 は「New」となっているので、差分はありません。
開いて「Save」をクリックすれば、Merge先のBranch「FlsmTest_Merge」への追加対象となります。

権限セットグループのマージ

権限セットグループの差分ですが、左側にのみ存在する権限セット2があることが確認できます。
今回はこちらを含めたままにしたいので、何も変更せずに「Save」をクリックします。

Branch マージの確定

差分が出ていた資材のStatus列 がすべて「Resolved」になっていることを確認して、「Merge To Branch」をクリックすればBranch のマージが確定されます。

マージ先のBranch「FlsmTest_Merge」の詳細画面にてBranchがマージされていることが確認できます。

おわりに

いかがでしたでしょうか。
今回はFlosum におけるBranch マージ機能の使い方をご紹介しましたが、複数人で開発をおこなう際にはとても便利な機能だと感じます。

最後までお読みいただきありがとうございました。
62 件
     
  • banner
  • banner

関連する記事