ソース追跡で識別される変更の確認
-
ターミナルウィンドウまたはコマンドウィンドウで、プロジェクトディレクトリに移動します。この例では、ディレクトリの名前は MyProject です。
-
Force:source:status コマンドを実行します。-u パラメータを含めて、ローカルプロジェクトと比較するスクラッチ組織または Sandbox のユーザ名を指定します。この例では、ユーザ名は DevSandbox です。
CLI にローカルプロジェクトと組織の違いが表示されます。この例では、ローカルプロジェクトに WidgetClass という名前の Apex クラスが追加されています。組織には、ローカルプロジェクトにプルされていない Widget__c という名前のカスタムオブジェクトへの変更が含まれていますが、これはローカルプロジェクトの Widget__c と競合します。この例では、組織で作業しているユーザが Widget__c の All というリストビューを削除し、WidgetPermissions という名前の権限セットが追加されています。ソースを組織にプッシュすると、WidgetClass ApexClass が追加されます。組織からソースをプルすると Widget__c が変更され、Widget__c の All リストビューが削除され、ローカルプロジェクトに WidgetPermissions という権限セットが作成されます。
ソース追跡で返される変更情報のテーブルは、STATE、FULL NAME、TYPE、および PROJECT PATH の 4 つの列で構成されています。それぞれの行は 1 つの変更を表しています。
STATE には、変更に関する情報が詳しく示されています。この列を見ると、変更の場所と内容、および競合が発生しているかどうかがわかります。STATE の各種の値の意味を次に示します。
- Local — 変更がローカルプロジェクト内に存在しており、組織へのプッシュを待機しています。
- Remote — 変更が組織内に存在しており、ローカルプロジェクトへのプルを待機しています。
- Add — コンポーネントが作成されました。
- Changed — コンポーネントが編集されました。たとえば、項目が追加または削除されると、カスタムオブジェクトが変更されます。
- Deleted — コンポーネントが削除されました。
- (Conflict) — 通常、Salesforce は、ソースがプッシュまたはプルされると、コンポーネントを自動的に作成、削除、または更新します。この状況の場合、Salesforce は、自動的に解決できない変更を検出しました。変更をプッシュまたはプルする前に、競合を解決してください。
FULL NAME は、コンポーネントの API 参照名です。
TYPE は、コンポーネントのメタデータ型です。コンポーネントが何であるのか、たとえば Apex クラスであるのか、カスタムオブジェクトであるのかを示します。
PROJECT PATH は、ローカルプロジェクトのコンポーネントの場所です。空白の場合、コンポーネントは、ローカルプロジェクトに存在しません。通常、空白のときは、コンポーネントがローカルプロジェクトではなく組織に存在していることを意味します。
ローカルプロジェクトと組織のソースが一致した場合、force:source:status コマンドは、「No results found (該当する結果がありません)」というステートメントを返します。
ローカルプロジェクトと組織のソースの差を確認すると、ソースをプッシュまたはプルする準備が整います。ソース追跡でプッシュまたはプルされるのは、変更されたソースのみです。