レビューのクリーンアップ
このセクションでは、レビューのクリーンアップ用に設定する構成可能変数について説明します。
構成情報を変更しても、構成キャッシュを再ロードしない限り、その構成情報がSwarmで使用されることはありません。構成キャッシュを再ロードすると、変更した構成情報がSwarmで強制的に使用されます。Swarm構成キャッシュを再ロードするには、admin ユーザまたはsuper ユーザでなくてはなりません。[ユーザID]ドロップダウンメニューに移動して[システム情報]を選択し、[キャッシュ情報]タブをクリックしてから[構成の再ロード]ボタンボタンをクリックします。
Swarmでレビューを作成すると、そのレビュー専用のチェンジリストが作成されます。ユーザのチェンジリストは変更されないため、ユーザが現在行っている作業には影響しません。新しい作業内容をレビューにサブミットするたびに、Swarmによって新しいチェンジリストが作成されるため、レビューのバージョン付き履歴が生成されることになります。
レビューをコミットすると、そのレビューがSwarm専用のコミット済みチェンジリストになります。通常、Swarmのチェンジリストはユーザには表示されませんが、ユーザのチェンジリストはオープンされたままになります。通常は、レビューの完了後に、ユーザが自分のチェンジリストを整理して削除する必要があります。
レビューのコミット時に自動的にこの処理を実行するためのオプションが用意されています。このオプションの設定は、SWARM_ROOT/data/config.php
ファイルのreviewsブロックに記述されています。以下に例を示します。
<?php
'reviews' => array(
'cleanup' => array(
'mode' => 'user', // auto - follow default, user - present checkbox(with default)
'default' => false, // clean up pending changelists on commit
'reopenFiles' => false, // re-open any opened files into the default changelist
),
),
このオプションはデフォルトで有効になっていますが、デフォルトの場合、クリーンアップは実行されません。そのため、レビューのコミット時にチェンジリストをクリーンアップする場合は、ユーザがこのオプションを選択する必要があります。
Swarmを使用するように設定されているHelixサーバのsuperユーザは、特定のレビューに関連するすべてのユーザのチェンジリストをクリーンアップすることができます。それ以外のユーザの場合、レビューをコミットしたユーザであれば、自分が所有しているチェンジリストのみクリーンアップすることができます。
デフォルトでは、コミット操作を実行したユーザが所有しているチェンジリストのみがSwarmによってクリーンアップされます。あるユーザがコミットしているレビューに他の複数のユーザが参加している場合、それらのユーザのチェンジリストがクリーンアップされることはありません。
コミット操作を実行するユーザが所有しているチェンジリストかどうかにかかわらず、特定のレビューに関連するすべてのチェンジリストをクリーンアップするようにSwarmを設定するには、Swarmで設定されているsuper権限をHelixサーバユーザに割り当てる必要があります(Swarmの他の操作の場合はadmin権限で実行できますが、この操作の場合はsuper権限が必要になります)。
外部のスクリプトでsuper user 権限を使用してフルクリーンアップを実行するAPIオプションが用意されています。このオプションを使用すると、Swarm Helixサーバユーザにsuper権限を割り当てる必要がなくなります。詳細については、「APIエンドポイント」を参照してください。
-
mode
user
モードの場合、レビューのコミット時にチェックボックスが表示されます。このチェックボックスを使用して、チェンジリストをクリーンアップするかどうかを選択することができます。auto
モードの場合、チェックボックスは表示されません。コミットされたレビューがすべてクリーンアップされるか、いずれのレビューもクリーンアップされないという動作になります。どちらの動作になるかは、default
の値によって異なります。 -
default
user
モードに設定されている場合、defaultの値により、コミット時に表示されるチェックボックスをデフォルトでオンにするかどうかが決まります。auto
モードに設定されている場合、defaultの値により、自動的に実行される操作が決まります。この値をtrue
に設定すると、チェンジリストが常にクリーンアップされ、falseに設定すると、クリーンアップは実行されません。 -
reopenFiles
チェンジリストがチェックアウトされている場合(保留されていない場合)、そのチェンジリストを削除することはできません。
reopenFiles
をtrue
に設定すると、チェンジリストのクリーンアップ時に、作業中のファイルが最初にデフォルトのチェンジリストに移動されるため、チェンジリストを削除できるようになります。値を
false
に設定した場合、チェックアウトされたファイルが含まれているチェンジリストはクリーンアップされません。通常は、ファイルを保留状態にした後で、それらのファイルを元に戻すという順序になりますが、その場合はこのオプションを使用する必要はありません。値を
true
に設定すると、ユーザのデフォルトのチェンジリスト内に予期しないファイルが表示される場合があります。
レビューのクリーンアップ機能の目的は、ユーザの作業スペースを整理された状態に保ち、承認済みレビューのコミット後に、不要なチェンジリストが拡散するのを防ぐことです。
ただし、必ずしもこの機能が完全に動作するわけではありません。ユーザの側から見た場合、この機能は自動的に実行されるため、ユーザの予期しない結果になることがあります。この機能を使用する場合は、以下の点に注意してください。
- Swarmによって作成されたチェンジリストがこの機能で処理されることはありません。レビュー履歴のレコードは常に保存されます。
- 通常は、レビューをコミットするユーザと作業を行うユーザは異なりますが、その場合は、superユーザとしてSwarmを実行しない限り、ほとんどのチェンジリストはクリーンアップされません。
- コミット操作を実行するユーザが作成したチェンジリストは削除されますが、それ以外のユーザが作成したチェンジリストは削除されません。
- ユーザがチェンジリスト内でファイルを保留状態にし、それらのファイルを元に戻さなかった場合、それらのファイルは、そのユーザのローカルワークペース内に残ったままになるため、手動でクリーンアップする必要があります。