Repository navigation
v0.9.0 - Payload Mode: a 131 GiB Tree Through Seafile Without Going Through Git, and the Snapshot Tool Installs with the Package
What's Changed in v0.9.0
The snapshot tool (git seafile-snapshot) can now carry a tree that is mostly large,
immutable data. Files above a threshold, or that do not compress, bypass git: each is
hashed and stored on the server under its SHA-256, and the snapshot is a manifest.
A 131 GiB tree (633 payload files, 124.6 GB) was snapshotted in 38 minutes against a
real Seafile server and restored byte-exact, verified file by file.
Upgrading from 0.8.8
- The snapshot tool ships in the wheel:
git-seafile-snapshot(sogit seafile-snapshot)
andgit-remote-seafile snapshot.python tools/seafile_snapshot.pystill works from a checkout. - Payload mode is on by default (
auto: files of 64 MiB or more, or 4 MiB or more that do not compress) for snapshots that push to aseafile://remote. A tree with no such file is snapshotted exactly as in 0.8.8.--no-payloadturns it off and the vault remembers that. - An existing vault with large files in git changes on its next run: they leave the git tree and are uploaded as payload objects (one full pass; stored twice on the server, since the old blobs stay in the history). Older snapshots restore as before; newer ones need the payload, and 0.8.8 cannot restore them completely. Run once with
--no-payloadto keep a vault as it was.
Added
- Payload mode (
--payload-min-size [SIZE|auto]): large files stored by hash under
<path>/payload/objects/, a manifest in the vault commit, parallel uploads, a
per-machine hash cache, and a verified--restore. The setting is remembered by the vault. --payload-gc(two-phase retention,--payload-keep Nfor expiry),--payload-verify
(audit by download and hash),--payload-view(a browsable directory of real names
by server-side copy),--payload-rehash.--no-payload, a.seafile-payload/README.txtin every payload vault, and a size line for the
payload store after an upload.- Safeguards (PAYLOAD.md D13): each snapshot commit records the tool's version and a run warns when it
builds on a newer tool's snapshot;--payload-deleteneeds--vault(or--payload-no-vault) and stops
with--payload-accept-losswhen the remote's history was rewritten or--payload-keepwould expire
snapshots (a tag is a pin); a restore that would not fit the disk is refused before downloading; an
upload over the quota or into a library this machine syncs is warned about first;--payload-verify
leaves a marker that the gc report shows. - The specification, with two rounds of independent review, is
PAYLOAD.md.
Changed
SeafileClient.delete_entryforgets the directories under a deleted path.--helpgroups the payload options and states each default.
Fixed
--restore --ref <rev>failed against any remote whose HEAD is the vault branch.
The full list, with measurements, is in CHANGELOG.md.
Full Changelog: v0.8.8...v0.9.0