この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

sf のソース追跡について

sf のソース追跡は、基本的には sfdx と同様に機能しますが、いくつかの小さな違いがあります。このトピックでは、それらの違いについて説明します。

次の sf コマンドはソース追跡をサポートしています。

  • sf deploy metadata
  • sf deploy metadata validate
  • sf retrieve metadata

リリースから始めましょう。ソース追跡が可能なスクラッチ組織または Sandbox 組織で sf deploy metadata を初めて実行したときは、ローカルプロジェクトのすべてのソースファイルがリリースされます。ただし、このコマンドを次回実行したときは、ローカルで変更されたファイルのみがリリースされます。いずれかのフラグを使用してリリースリストを絞り込んだ場合は (--source-dir--metadata、または --manifest)、指定されたディレクトリ、メタデータ、またはマニフェスト内の変更されたファイルのみがリリースされます。どのフラグも指定しない場合は、プロジェクト内のすべての変更がリリースされます。これは、sfdxforce:source:push と同様の動作です。

sf metadata deploy validate コマンドも同様の動作をしますが、実際にリリースとソース追跡が行われるのは、後で sf deploy metadata quick が実行されたときである点が異なります。

sf retrieve metadata コマンドはリリースと同様ですが、逆の動作となります。初めて取得を実行するときは、すべてのものが取得されますが、次回取得を実行するときは、組織で変更されたものだけが取得されます。--source-dir--metadata、または --manifest を指定しない場合は、force:source:pull と同様に組織のすべての変更が取得されます。

これらのいずれかのコマンドが、リリースまたは取得されるファイルで競合を検出した場合は、競合が表示されます。変更を強制的にリリースまたは取得するには、--ignore-conflicts フラグを使用します。このフラグは、sfdx の多くの force:source コマンドの --forceoverwrite パラメータと似ています。次に例を示します。

組織でソース追跡が許可されるかどうかの確認

ソース追跡が機能するのは、対象組織でソース追跡が許可されている場合に限られます。その場合でも組織のメタデータのリリースや取得は可能ですので心配しないでください。ただし、コマンドは競合の有無をチェックしないため、リリースや取得の対象は、--source-dir などの適切なフラグを使用して、自分で指定する必要があります。

組織でソース追跡が許可されるかどうかを確認する方法を次に示します。

  • 本番組織、Partial Copy Sandbox、および Full Sandbox では、ソース追跡は許可されません。
  • Developer および Developer Pro Sandbox:
    • 関連する本番組織でソース追跡が有効になっている場合は、ソース追跡が許可されます。
    • Sandbox を作成する際、sf env create sandbox コマンドに --no-track-source フラグを指定したときは、ソース追跡を除外できます。次に例を示します。
  • スクラッチ組織では、ソース追跡がデフォルトで許可されます。
    • スクラッチ組織の作成時、sf env create scratch コマンドに --no-track-source フラグを指定したときは、ソース追跡を除外できます。次に例を示します。

考慮事項

sf のソース追跡を使用するときには、次の点を考慮してください。

  • sf deploy metadata コマンドでは、sfdx-project.json ファイルの pushPackageDirectoriesSequentially オプションがサポートされていないため、パッケージディレクトリを順次リリースできません。このコマンドは、常にすべてのパッケージディレクトリを単一のトランザクションで順序を決めずにリリースします。パッケージディレクトリのリリース順序を指定する必要がある場合は、sf deploy metadata コマンドをパッケージディレクトリごとに 1 回、必要な順序で実行します。
  • sfdx コマンドの force:source:pullforce:source:push は、sf のソース追跡と互換性があります。
  • sfdx コマンドの force:source:deployforce:source:delete、および force:source:retrieve は、--tracksource パラメータが使用される限り、sf のソース追跡と互換性があります。sf のリリースおよび取得コマンドとは異なり、これらの sfdx コマンドは、そのパラメータが使用されなければ、ソースを追跡しません。
  • 破壊的な変更を行うには、最初にファイルをローカルで削除してから、sf deploy metadata を実行します。force:source:push と同様、sf deploy metadata コマンドは、ローカルで削除された組織からメタデータを削除します。
  • これらの sfdx コマンドを使用すると、ローカルとリモートのソースファイルの変更をリストしたり、ソース追跡をリセットまたはクリアしたりできます。
    • force:source:status
    • force:source:tracking:reset
    • force:source:tracking:clear
  • force:source:legacy コマンドと sf deploy|retrieve metadata コマンドは互いに互換性がないため、一緒に使用しないでください。

    警告