仕様ファイルの変更と生成されたソース・コードとの同期

同期機能を使用して、仕様ファイルからチェーンコード・ソース・ファイル(モデルおよびコントローラ)に新しい変更を取り込むことができます。この機能は、TypeScriptプロジェクトとGoプロジェクトの両方で機能します。

ノート:
  • 同期は一方向です。仕様ファイルからチェーンコード・プロジェクトに変更を取り込むことはできますが、その逆はできません。チェーンコード・プロジェクトで行われた変更は、同期プロセス後もそのままです。
  • コマンドは、チェーンコード・プロジェクトが仕様ファイルを使用してスキャフォールドされた場合にのみ機能します。今後、仕様ファイルからソース・コードに変更を同期する予定がある場合は、仕様ファイルを削除、名前変更または移動しないでください。
  • 同期中、libフォルダ内のチェーンコード・ファイルは自動的にアップグレードされます。これらのライブラリ・ファイルに変更を加えた場合は、同期機能を使用する前に変更したファイルをバックアップするか、変更を追跡して、同期後にこれらの変更を再度適用できるようにします。
仕様ファイルとチェーンコード・ファイルを同期するには:
  1. 「Specifications」ペインで、更新した仕様ファイルを選択して「Specification Details」ペインを開きます。ペインの上部にある「Chaincodes」をクリックして、仕様ファイルから生成されたチェーンコードを示すペインを開きます。
  2. 新しい変更で更新する各チェーンコードの横にある「Sync」チェック・ボックスを選択します。仕様ファイルから生成された複数のチェーンコードを一度に同期できます。「同期」をクリックします。
これで、更新されたファイルがチェーンコード・プロジェクトに含まれるようになります。

競合の解決

同期ファイルとチェーンコード・ファイルの両方を編集できるため、更新された仕様ファイルによってチェーンコード・ファイルに加えた変更が上書きされる競合が発生する可能性があります。このような場合、同期しようとすると、競合があることを示すエラーが表示されます。これらのエラーは、「Conflicts」ペインを使用して解決できます。

  1. 「競合」ペインで、競合が存在するチェーンコード・ファイルの名前をクリックします。ファイルがエディタで開き、競合が強調表示されます。
    エディタに表示された同期の競合

    この例では、Marble124は仕様ファイルにあり、Marble123はチェーンコード・モデル・ファイルにあります。

  2. 競合の上には、オプションのリストがあります。仕様ファイルをオーバーライドし、チェーンコード・ファイルの現在の内容を使用するには、現在の変更の受入れをクリックします。チェーンコード・ファイルをオーバーライドし、仕様ファイルの現在の内容を使用するには、入力変更の受入れをクリックします。
  3. 「競合」ペインに戻ります。競合名の横にある「Sync」チェック・ボックスを選択し、「Confirm Changes」をクリックします。複数の競合がある場合は、すべての競合を解決してから「変更の確認」をクリックします。