mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
22dce8230d
Summary: Instead of the lfs remote storage it was chosen to send the snapshot metadata via bundles. Snapshot metadata consists of: the actual metadata blob + several other blobs (untracked files etc). If we have several snapshot revisions in a single bundle, the blobs could repeat. Then we should store each blob as a separate entry in a binary stream, keeping its id and contents. Here we introduce a new bundle part type `"b2x:snapshotmetadataparttype"`. ``` 1 byte of version info [ # a list of binary entries, each corresponds to a separate file # (either a metadata file itself or a related -- externally stored -- file) <oid><length><data> :oid: is a 64char string with the hash of the file :length: is an unsigned int with length of the data :data: is binary data of length <length>, the actual file contents ] ``` So far there is an ongoing discussion on the exact format of serialization. Actual state is at [the quip doc](https://fb.quip.com/R5OVAzabX8oo). Reviewed By: markbt Differential Revision: D17184222 fbshipit-source-id: 90f833ec71556e90d513e3be3f3efa7f870b037d |
||
---|---|---|
.. | ||
__init__.py | ||
bookmarks.py | ||
bundleparts.py | ||
bundlestore.py | ||
client.py | ||
common.py | ||
constants.py | ||
fileindex.py | ||
infinitepushcommands.py | ||
README | ||
server.py | ||
sqlindex.py |
## What is it? This extension adds ability to save certain pushes to a remote blob store as bundles and to serve commits from remote blob store. The revisions are stored on disk or in everstore. The metadata are stored in sql or on disk. ## Config options infinitepush.branchpattern: pattern to detect a scratchbranch, example 're:scratch/.+' infinitepush.indextype: disk or sql for the metadata infinitepush.reponame: only relevant for sql metadata backend, reponame to put in sql infinitepush.indexpath: only relevant for ondisk metadata backend, the path to store the index on disk. If not set will be under .hg in a folder named filebundlestore infinitepush.storepath: only relevant for ondisk metadata backend, the path to store the bundles. If not set, it will be .hg/filebundlestore