ロールバック
sekai --store ./sekai-store rollback ./world 1
sekai --store ./sekai-store rollback ./world @stable --in overworld
スナップショットからワールドを再構築し、リージョンファイルをアトミックに上書きします(対象ディレクトリ内のテンポラリファイル + fsync + rename;インプレースの直接変更は一切行われません)。
スナップショット引数は <id> または @tag を受け付けます(タグ参照)。
ファイルにはスナップショットの時刻が刻印され、揮発性タグは取得時の値に巻き戻されます。
デフォルトのポリシーは厳格です:
- スナップショットに存在しない(後に作成された)リージョンファイルは削除されます。
- スナップショットに存在しないチャンクは再構築時に消失します。
- 墓標化されたチャンクは削除されます(完全に墓標化されたリージョンはファイル自体が削除され、ヘッダーだけのシェルが残ることはありません)。
- CASから欠損している Blob がある場合は明確に中断されます(破損 — 中途半端なワールドになるよりは何も行わない方が良いため)。
各挙動はデフォルトを変更することなく設定可能です:
| フラグ | 効果 |
|---|---|
--keep-post-snapshot-files | スナップショット作成後に生成されたファイルを削除せず保持する |
--keep-post-snapshot-chunks | 再構築されるリージョン内のスナップショット作成後に生成されたチャンクの生データを保持する |
--keep-tombstoned-chunks | 墓標化されたチャンクの生データを保持する。完全に墓標化されたファイルは変更されない |
--on-missing-blob skip-chunk | Blob が欠損しているチャンクをスキップする(デフォルトは abort) |
--on-missing-file derived-only|error | 場所を推測する代わりに、同階層のフォルダを無視するか、エラーにする(デフォルトは sibling-first) |
- 対象範囲フラグ(
--in、--region、--kind)は対象範囲内のみを再構築および削除します。対象範囲選択を参照してください。 通常通り--timingや--jsonと組み合わせることができます。 - 再構築の前に、CLIは対象スナップショット・対象範囲・ポリシーを標準エラー出力に表示します(human出力のみ)。