sapling/cmds
Siddharth Agarwal 4e9f826728 blobstore: restrict the types that can be stored
Summary:
Currently, any sort of `Bytes` can be stored in the blobstore. That
caused me to make several mistakes while writing the code to store bonsai
changesets, because I'd just end up storing the wrong set of `Bytes`.

Introduce stronger typing so that only types that explicitly implement
`BlobStorable` can be stored in the blobstore.

Currently, these sorts of blobs can be stored in the blob store:

* `ChangesetBlob` and `ContentBlob` in `mononoke-types` (these are Thrift-serialized structures)
* The envelope `RawNodeBlob` and `RawCSBlob` types in `blobrepo`, once converted to `EnvelopeBlob` instances
* `HgBlob`, which contains revlog data (manifests or files) exactly as serialized by Mercurial

Reviewed By: StanislavGlebik

Differential Revision: D7627290

fbshipit-source-id: d1bcbde8881e365dec99618556e7b054985bccf7
2018-04-18 19:53:32 -07:00
..
blobimport blobstore: restrict the types that can be stored 2018-04-18 19:53:32 -07:00
new_blobimport mononoke: add xdb tier to the config and use it for filenodes 2018-04-18 04:09:09 -07:00
dumprev.rs mercurial: refactor RevlogRepo to expose less methods publicly 2018-03-20 11:53:09 -07:00
idxdump.rs mercurial: refactor RevlogRepo to expose less methods publicly 2018-03-20 11:53:09 -07:00