VERSION
VERSION = 1
The manifest format, so an archive from a later release is refused rather than misread.
What an archive holds, and what it is missing.
An archive is only useful if it can be restored somewhere else, so the manifest exists to answer one question before anything is unpacked: is this self-contained? The three lists it carries are the three reachability classes - commits, the frames they resolve through, and the dictionaries and delta anchors those frames decode against. An archive missing any one of them holds bytes that cannot be read, which is worse than holding nothing, because it looks like a backup.
problems is the honest field. An export that could not read an object records it here rather
than omitting it silently, and isComplete() is false for the rest of the archive's life.
__construct(string $site, int $createdAt, list$commits = [], list $frames = [], list $dictionaries = [], list $objects = [], int $bytes = 0, list $problems = [], string|null $head = null, int $version = \self::VERSION) : mixed
Constructs a manifest.
| string | $site | The site id the history was exported from. |
| int | $createdAt | Unix seconds the archive was written. |
| list |
$commits | Commit ids the archive carries, oldest first. |
| list |
$frames | Frame content addresses the archive carries. |
| list |
$dictionaries | Dictionary ids the archive carries. |
| list |
$objects | Every object key in the archive, so an import needs no directory walk. |
| int | $bytes | Bytes of stored objects, not counting the archive's own framing. |
| list |
$problems | What could not be read, one line each. |
| string|null | $head | The commit the exported ref pointed at, or NULL when no ref was exported. |
| int | $version | The manifest format version. |