sapling/eden
Meyer Jacobs c625107209 scmstore: introduce simplified, non-async, non-generic, non-combinator TreeStore
Summary:
There have been a bunch of problems with the previous approach to scmstore, so I'm going to try to start simple, make it feature complete, and then add async integration and factor out generic functionality as appropriate.

This change contains a `TreeStore` implementation with a single, synchronous, batch read method (supporting local storage, memcache, and legacy fallback, with writing missing to cache).

Add `TreeStoreBuilder`, which duplicates the existing `TreeScmStoreBuilder`, which some changes that make it easier to use for this case. I intend to unify these in the future.

Add an inherent impl for `EdenApiTreeStore` that provides subset of the `BlockingEdenApi` trait, which eliminates the need to unpack this type into a different adapter as the old `scmstore` code does. This might not be the right approach here, in reality we only need a `(client: Arc<dyn EdenApi>, repo: String)` here for trees, and that + `ExtStoredPolicy` for files, so we could take the `EdenApiAdapter` approach here too. The only reason we have to do any of this is because when `pyrevisionstore` is called to construct `scmstore` / `contentstore`, all we have is `Arc<EdenApiTreeStore>`. We could also just make the `EdenApiRemoteStore` fields public, and access them through the `Arc`.

Add `add_mcdata` method to `MemcacheStore`, `impl TryFrom<Entry> for McData`, and `impl From<McData> for Entry` for convenience when working with `MemcacheStore` (so we don't need to manually unpack the type and build `Entry`, or manually build a fake `Delta` from `Entry` to write).

Reviewed By: DurhamG

Differential Revision: D28076900

fbshipit-source-id: 7fdb5e8a42d052879eff449f60d40a83cfa7145d
2021-04-30 20:38:41 -07:00
..
fs service: remove dependency on curl 2021-04-29 19:41:04 -07:00
hg-server error out when fetching NULL data from hgsql 2021-04-29 14:45:12 -07:00
integration nfs: run most integration tests on edenfs 2021-04-23 13:30:17 -07:00
locale add a copyright header to glibc_en.po 2019-04-26 14:38:27 -07:00
mononoke segmented_changelog: rename Vertex to DagId 2021-04-30 09:11:03 -07:00
scm scmstore: introduce simplified, non-async, non-generic, non-combinator TreeStore 2021-04-30 20:38:41 -07:00
test_support test_support: fix rmtree error function 2021-04-08 19:00:42 -07:00
test-data enable treemanifest in snapshots 2019-08-28 18:46:03 -07:00
.gitignore eden: wire up mac contbuild 2019-02-05 21:52:30 -08:00
Eden.project.toml