obliterate とは異なり、リビジョン制限はファイルと最新バージョンを残し、余分な古いバージョンだけを削除します。
リビジョン制限は Studio および Enterprise プランでご利用いただけます。
「バージョン」(リビジョンとも呼ばれます) は、ファイルの 1 つのコミット済み状態です。
--keep 3 は、一致する各ファイルの最新 3 つのコミット済みバージョンを Diversion が保持し、それより古いものを削除することを意味します。使用例
要件
- 組織管理者 である必要があります。
- Git と同期しているリポジトリではリビジョン制限はサポートされていません。
仕組み
- 管理者が 1 つ以上のルールを追加します。各ルールはパスパターンと保持数で構成されます (
dv pruneを参照)。 - コミットのたびに、Diversion はそのコミットが変更したファイルをルールと照合し、保持数を超えるバージョンを削除します。
- 削除処理はバックグラウンドで実行されます。コミットが遅くなることは ありません。コミットする人にはプロンプトも警告も表示されません。
dv prune list で確認してください。
保持数
--keep <N>— 最新Nバージョンを保持します (1~999)。--keep 1はヘッドバージョンのみを保持します。--keep all— すべてのバージョンを保持します (削除しない)。より広い制限からパスを部分的に除外する (部分的に否定する) ために使います。ルールの順序 を参照してください。
ブランチセーフなカウント
「保持 N」は リポジトリごと ではなく ブランチごと にカウントされます:- すべてのブランチのヘッドバージョンは常に保持されます。
- ファイルの格納バイトは、どのブランチ の保持バージョンでもそれを必要としなくなったときにのみ削除されます。
決して削除されないもの
- ドラフトとシェルフ。 コミットされていない作業とシェルフ変更は常に保持されます。
- 各ブランチのヘッド。 各ブランチの最新バージョンは、
--keep 1でも常に保持されます。
Glob 構文
パターンは リポジトリのルートに固定 されます。ワイルドカードをシェルが展開しないよう、必ずクォートしてください。これはobliterate と同じパターン文法です。
ルールの順序
ルールは 順序付きリスト です。複数のルールがパスに一致する場合、最後に一致したルールが優先 されます。ルールを追加すると末尾に追加されるので、後のルールが前のルールをオーバーライドできます。 これを使うと、より広いパターンを制限しつつ、サブツリーの下ではすべてを保持できます:dv prune list はこの優先順序でルールを表示します。
ルールの管理
dv prune を使ってルールの一覧表示、追加、編集、削除を行います:
Perforce から移行する
これは Perforce の+S / +Sn ファイルタイプ修飾子 (ファイルの最新 N リビジョンのみを保持する) に相当する Diversion の機能です。
Perforce depot をインポート する際、既存の +S ルールを Diversion のリビジョン制限として持ち込むことで、移行を通じて保持ポリシーを引き継げます。インポートは、変換されたルールのレビューレポートを生成し、管理者が適用します。Diversion チームに連絡 して Perforce インポートを実行してください。
Diversion は設計上、ブランチセーフなカウントを保証します。Perforce の
+S のブランチ間での挙動はサーバーバージョンによって変化し一貫していません — Diversion は常にすべてのブランチのヘッドを保持し、別のブランチがまだ必要としているバージョンは決して削除しません。関連
dv prune— ルール管理のための CLI リファレンス- Obliterate — ファイルの全バージョンを完全削除
- ストレージ — Diversion がファイルバージョンをどのように格納・共有するか
- Perforce から移行する — マイグレーションガイド

