Helix Swarmガイド (2020.1)

アクティビティ

このセクションでは、レビューの開始、レビューの更新、レビューファイルのフェッチなど、コードレビューに影響する主要なアクティビティについて説明します。

レビューの開始

重要

使用しているHelixサーバがコミットエッジ展開として構成されていて、通常の接続先がエッジサーバである場合、Swarmは、コミットサーバに昇格されていない保留状態の変更のレビューの開始を拒否します。

この状態の場合、Swarm内では、昇格されていない保留状態の変更に対して[レビューを要求]ボタンは表示されません。 また、Swarmの外部では、昇格されていない保留状態のチェンジリストのレビューを開始しようとしても、何も実行されません。 レビューを開始できない場合は、Helixサーバの管理者に問い合わせてください。

Helixサーバの管理者は、構成可能変数dm.shelve.promote1に設定することにより、保留中の変更をコミットサーバに自動的に昇格させることができます。

ヒント

チェンジリストにストリーム仕様のみが含まれていて、Helixサーバ上におけるそのストリーム仕様の場所がSwarmプロジェクトに関連付けられていない場合、レビューを作成しても、デフォルトのレビュー担当者やワークフロールールがそのレビューに設定されることはありません。 レビューを特定のプロジェクトに関連付けると、そのレビューにデフォルトのレビュー担当者が設定され、そのプロジェクトのワークフロールールが適用されます。レビューをプロジェクトに関連付けるには、レビューの作成時に、該当するプロジェクトパスのファイル変更をチェンジリストに含めます。

  1. 保留状態のチェンジリストや、コミット済みチェンジリストを作成するには、P4DコマンドラインまたはP4Dクライアントを使用します。
  2. 以下に示すいれかの方法で、コードレビューを開始します。

Swarmを使用する

  1. 保留状態のチェンジリストやサブミット済みチェンジリストを表示するには、Swarmを使用します。
  2. ヒント

    保留状態のチェンジリストやサブミット済みチェンジリストを表示するには、クイックURLを使用します。 例えば54321という変更の場合は、次のURLにアクセスします: https://myswarm.url/54321

  3. [レビューを要求]ボタンをクリックしてチェンジリストのレビューを要求します。
  4. 保留中のチェンジリストのレビューを要求する場合はプリコミットモデルが使用され、サブミット済みチェンジリストのレビューを要求する場合はポストコミットモデルが使用されます。

P4Dコマンドラインを使用する

ファイルを保留またはサブミットする前に、以下の操作を実行します。

  1. チェンジリストに#reviewを追加します(他のテキストとの間に空白を入れるか、別の行に追加してください)。

    レビューが開始されると、Swarmによって#review#review-12345に置き換えられます。12345は、レビューのIDです。

    注意

    #reviewキーワードは、カスタマイズすることができます。 詳しくは、「レビューキーワード」を参照してください。

  2. ここで、チェンジリストの説明内で、追加するレビュー担当者ごとに、ユーザの場合は@mentionを使用し、グループの場合は@@mentionを使用することにより、コードレビューにレビュー担当者を追加することができます。
  3. @*useridなどのように、@mentionまたは@@mentionを使用して、ユーザIDまたはグループIDの前にアスタリスク(*)を指定すると、そのユーザまたはそのグループメンバーすべてが必須レビュー担当者になります。 @@mentionを使用してグループIDの前に感嘆符(!)を指定すると(例: @@!groupid)、そのグループのメンバーが必須レビュー担当者になりますが、投票する必要があるのは、グループ内の1人のメンバーのみです。 詳細については、「必須レビュー担当者」を参照してください。

  4. 保留操作またはサブミット操作を実行します。
  5. 警告

    チェンジリストを保留してから、チェンジリストの説明を編集して#reviewを追加した場合、レビューは開始されません#reviewを追加した後で、チェンジリストを再度保留する必要があります。

Git Fusionを使用する

  1. Git FusionGitとHelixを反映するPerforce製品で、企業に対応するGitリポジトリ管理を提供するとともに、GitおよびHelixサーバユーザが好みのツールを使用して同一プロジェクトで協力することのできるワークフローを提供します。を使用している場合は、以下のコマンドを実行して対象ブランチに変更をプッシュすることにより、レビューを開始することができます。
  2. $ git push origin task1:review/master/new

    task1」は現在のGitタスクブランチの名前で、「master」は変更の適用先となるターゲットブランチです。

    重要

    対象ブランチは、Git Fusionリポジトリ構成内で指定されたHelixサーバブランチにマップする必要があります。

    詳細については、『Git Fusionガイド』の「軽量ブランチの完全実装版Perforceブランチへの変換」セクションを参照してください。

  3. 以下のコマンドを実行すると、作成されたreview idが出力内に表示されます。
  4. remote: Perforce: Swarm review assigned: review/master/1234

    1234の部分に、作成されたレビューIDが表示されます。

    Git Fusionの詳細については、Git Fusionガイドを参照してください。

ヒント

P4VP4VSP4EclipseSwarmレビューを開始することもできます。 詳細については、以下を参照してください。

注意

P4VとそのSwarm統合を使用しているときに「Host requires authentication」というエラーが発生した場合は、Helix Coreサーバの管理者にサポートを依頼してください。 詳細については、「 P4Vの認証」を参照してください。

レビューを更新する

コードレビューを更新するには、以下のアプローチのうち1つを使用します。

  • 自分が作成したプリコミットレビューの場合:

    1. ファイルを編集する
    2. ファイルを保留する

    必要な場合は何回でもこのステップを繰り返すことができます。

  • ポストコミットレビュー、または自分が作成者ではないレビューの場合

    1. 新しいチェンジリスト内にレビューファイルをフェッチする
    2. ファイルを編集する
    3. チェンジリストの説明に#review-12345を含める(他のテキストとの間に空白を挿入するか、別の行に入力する)
    4. チェンジリストのファイルを保留する

    これらのステップが完了したら、さらにファイルの編集などの更新を加えて、チェンジリストのファイルを保留してください。

    警告

    レビューIDが無効な場合は、何も起きていないように見えます。 現時点では、この状況をSwarmで通知することはできません。 レビューが正しく更新されなかった場合は、Swarmのレビューヘッダの[変更を追加]ボタンを使用して、レビューにチェンジリストを追加してください。詳しくは、「レビューにチェンジリストを追加する」を参照してください。

  • Git FusionGitとHelixを反映するPerforce製品で、企業に対応するGitリポジトリ管理を提供するとともに、GitおよびHelixサーバユーザが好みのツールを使用して同一プロジェクトで協力することのできるワークフローを提供します。での作業時

    重要

    Git Fusionを使用して更新できるのは、Git Fusionで開始されたレビューだけです。

    次の例では、現在のGitタスクブランチがtask1で、対象ブランチがmaster、レビューIDは1234になっています。Git Fusionのホスト名はgfserverで、リモートリポジトリ名はp4gf_repoです。

    1. レビューの最新バージョンをフェッチします。

      $ git fetch --prune origin
      From gfserver:p4gf_repo
      * [new_branch] review/master/1234 -> origin/review/master/1234
      x [deleted] (none) -> origin/review/dev/new

      --pruneオプションを使用すると、最初のgit push origin task1:review/master/newコマンドで作成された、ローカルのGitリポジトリの不要なreview/master/newリファレンスが削除されます。

    2. レビューの最新バージョンをチェックアウトします。

      $ git checkout review/master/1234
    3. 必要に応じてファイルを編集します。
    4. 次のコミットに向けて、編集したファイルをファイルのインデックスに追加します。

      追加する方法はいくつかあります。 例えば、編集済みのファイルすべてをインデックスに追加するには、以下のコマンドを実行します。

      $ git add -A
    5. Gitでファイルをコミットします。

      $ git commit -m "made some changes"
    6. Gitの変更をレビューにプッシュします。

      $ git push origin review/master/1234
      注意

      レビューのフィードバックをもらう場合は、Gitリベースとして記述して履歴を削除することで、新しいレビューとして変更およびプッシュすることができます。

      同じレビューの履歴を削除して変更をプッシュすることはできません

      Git Fusionの詳細については、Git Fusionガイドを参照してください。

レビューのファイルをフェッチする

まず、レビューファイルを含んでいるチェンジリストを選択します。

  1. レビューのページに移動します。
  2. 現在のレビューバージョンのチェンジリストがファイルリストの先頭に表示されます。

    ファイルリストの先頭に表示されるプリコミットレビューのチェンジリストの画像

    この例では、チェンジリストは697707です。 ここで指定されているチェンジリストを、下の保留済みチェンジリストの箇所に使用します。

  3. p4P4VGit Fusionのうち、どれを使用してファイルをフェッチするかを決め、それに該当するセクションの手順を実行します。

P4を使用する

  1. 保留済みチェンジリストの場合、コマンドラインシェルを使用して以下のように入力します。

    $ p4 unshelve -s shelved changelist
  2. コミット済みチェンジリストの場合、コマンドラインシェルを使用して以下のように入力します。

    $ p4 sync @committed changelist
注意

クライアントビューマッピングに該当するチェンジリストのパスが含まれている必要があります。

P4Vを使用する

保留済みチェンジリストの場合:

  1. [検索] > [移動]を選択します。
  2. 選択ボックスを[作業中チェンジリスト]に変更します。
  3. 保留チェンジリストの番号を入力して[OK]をクリックします。
  4. [保留済みファイル]領域のファイルを選択します。
  5. [保留を解除]を右クリックして選択します。
  6. [保留を解除]をクリックします。

コミット済みチェンジリストの場合:

  1. [検索] > [移動]を選択します。
  2. 選択ボックスをサブミット済みチェンジリストに変更します。
  3. サブミット済みチェンジリストの番号を入力して[OK]をクリックします。
  4. [ファイル]領域のファイルを選択します。
  5. [このリビジョンを取得]を右クリックして選択します。
  6. [閉じる]をクリックします。

Git Fusionを使用する

次の例では、現在のローカルタスクブランチがtask1で、対象ブランチがmaster、レビューIDは1234になっています。Git Fusionのホスト名はgfserverで、リモートリポジトリ名はp4gf_repoです。

  1. レビューの最新バージョンをフェッチします。

    $ git fetch --prune origin
    From gfserver:p4gf_repo
    * [new_branch] review/master/1234 -> origin/review/master/1234
    x [deleted] (none) -> origin/review/dev/new

    --pruneオプションを指定すると、最初のGitコマンド「push origin task1:review/master/new」で作成された不要なreview/master/newリファレンスが、ローカルのGitリポジトリによって削除されます。

  2. レビューの最新バージョンをチェックアウトします。

    $ git checkout review/master/1234
重要

Git Fusionを使用して更新できるのは、Git Fusionで開始されたレビューだけです。

Git Fusionの詳細については、Git Fusionガイドを参照してください。

シェルフを削除する

使用していないシェルフが多数ある場合は、それらのシェルフを削除すると、ワークスペースを整理することができます。

重要

デフォルトでは、保留状態のチェンジリストからファイルを削除しても、関連するレビューからそれらのファイルが削除されることはありません。

ただし、関連するシェルフからファイルが削除された場合に、それらのファイルをレビューから削除するようにSwarmを設定することができます。詳しくは、「Process_shelf_file_delete_when配列」を参照してください。

シェルを削除する場合や、シェルフからファイルを削除する場合は、Swarm構成ファイル内で指定されているSwarmユーザを使用しないでください。 shelve-deleteトリガイベントが却下されたSwarmユーザがこのイベントを呼び出すと、Swarmロジックによってこのイベントが処理されます。 この場合、削除操作が失敗します。

関連するレビューから保留状態のファイルを削除することなく、チェンジリストからシェルフを削除するには、以下で説明するように、P4またはP4Vを使用して、1回の操作でシェルフ全体を削除します。 これにより、シェルフからファイルが削除された場合に、それらのファイルをレビューから削除するようにSwarmが設定されている場合であっても、関連するSwarmレビューに影響を与えることなく、保留状態のチェンジリストをワークスペースから削除することができます。

P4を使用する

関連するレビューからファイルを削除することなく、保留状態のチェンジリストを削除するには、以下の手順を実行します。

  1. コマンドラインシェルで以下のように入力します。
  2. $ p4 shelve -d -c changelist

    重要

    シェルフ内のファイルを個別に削除しないでください。 シェルフ全体を削除すると、関連するレビューからファイルを削除するようにSwarmが設定されている場合であっても、関連するレビューからファイルが削除されるのを防ぐことができます。

  3. 保留状態のファイルが、作業中チェンジリストから削除されます。

P4Vを使用する

関連するレビューからファイルを削除することなく、保留状態のチェンジリストを削除するには、以下の手順を実行します。

  1. P4Vで、作業中チェンジリストを右クリックします。
  2. [保留中のファイルを削除]を選択します。
  3. 重要

    シェルフ内のファイルを個別に削除しないでください。 シェルフ全体を削除すると、関連するレビューからファイルを削除するようにSwarmが設定されている場合であっても、関連するレビューからファイルが削除されるのを防ぐことができます。

  4. 保留状態のファイルが、作業中チェンジリストから削除されます。

レビュー担当者を編集する

レビュー作成者は、レビューページのにある[レビュー担当者の編集]ボタンを使用して、個別のレビューのレビュー担当者を編集することができます。 レビュー担当者は、レビューに参加することも、レビューから退出することもできます。また、レビュー担当者による投票を必須にするか任意にするかも指定することができます。

注意

[デフォルトのレビュー担当者を保持]オプションが有効になっているプロジェクトまたはブランチを構成する内容がレビューに含まれている場合、そのレビューに対して以下の制限が適用されます。

  • 保持されたデフォルトのレビュー担当者の投票オプションを変更する場合は、より制限の厳しいレベルに変更することはできますが、レベルを下げることはできません。
  • 保持されたデフォルトのレビュー担当者をレビューから削除することはできません。

加えて、以下のユーザもレビュー担当者を編集することができます。

  • admin 権限または super 権限が設定されているユーザ
  • モデレータ(レビューがモデレート済みの場合)
  • プロジェクトの全メンバー(レビューがプロジェクトの一部で、モデレートされていない場合)
  • 認証されている全ユーザ(レビューがプロジェクトの一部ではない場合)

レビュー担当者の編集方法

  1. レビューに移動します。
  2. レビュー担当者のアバターの左側に表示されているレビュー担当者編集ボタン をクリックします。

    [レビュー担当者]ダイアログが表示されます。

    レビュー担当者ダイアログの画像
  3. レビュー担当者の追加または削除、もしくは投票要件を変更します。

    ユーザやグループを、名前、ユーザIDグループIDで検索するには、レビュー担当者検索フィールドを使用します。 このフィールドに文字を入力すると、その文字に一致するユーザやグループが自動的に表示されます。目的のユーザやグループが表示されたら、レビューに追加するユーザまたはグループをクリックします。

    • グループを追加する場合: グループIDの左側に表示されている星形のアイコンをクリックし、そのグループを、必須レビュー担当者(1票)、必須レビュー担当者(すべての票)、任意レビュー担当者のいずれにするかを選択します。 星形アイコンがオンになっている場合は、レビューを承認するためにはすべてのグループメンバーが投票する必要があることを意味しています。星形アイコンがオンになっていて、アイコン内に「1」が表示されている場合は、レビューを承認するためには、1人以上のグループメンバーが賛成票を入れ、反対票を入れたメンバーがだれもいない状態になっている必要があることを意味しています。星形アイコンがオフになっている場合は、グループメンバーによる投票が任意であることを意味しています。
    • ユーザを追加する場合: ユーザIDの左側に表示されている星形のアイコンをクリックすると、そのユーザによる投票を必須にするかどうかを切り替えることができます。 星型アイコンがオンになっている場合は、レビューを承認するためにはそのユーザによる投票が必須であることを意味しています。星形アイコンがオフになっている場合は、そのユーザによる投票が任意であることを表しています。

    レビュー担当者をレビューから削除するには、ユーザIDまたはグループIDの右側に表示されている[X]アイコンをクリックします。

  4. [保存]ボタンをクリックして、変更内容を保存します。