Summary: Code Clean Up. Remove everything about infinitepush-other path. This is a legacy to support migration.
Reviewed By: markbt
Differential Revision: D29677983
fbshipit-source-id: e9972117119d5e6005c3ec0b07809cf9d1fdc4a4
Summary:
This updates the symlinks to `third_party2` to the newest version of Rust. This
was attempted before but failed because upstream Rust stopped supporting the
version of LLVM that `platform009` uses. This new commit works.
Reviewed By: dtolnay
Differential Revision: D29497424
fbshipit-source-id: a2a8444564c3c7ad19df9423f5e82ab6738dd2ef
Summary:
Remove the panicking APIs in D29647203 and instead propagate "missing content attribute" errors.
It was difficult to make these changes at the bottom of my diff stack, so I've added them here instead.
Reviewed By: DurhamG
Differential Revision: D29670495
fbshipit-source-id: 952ed4913a413c39ac3dff14a22f56e4766512ff
Summary: Add an option, `scmstore.prefercomputingauxdata`, which enables computing aux data from locally available content instead of requesting aux data from EdenApi when possible.
Reviewed By: DurhamG
Differential Revision: D29659777
fbshipit-source-id: e381c8beac359dc1735d76378c602fbf2bb0b668
Summary: Update `FileStore` to fetch aux data from EdenApi. As written, `FileStore` will prefer remotely fetching aux data to computing it from locally available content.
Reviewed By: DurhamG
Differential Revision: D29659721
fbshipit-source-id: 13e33830ed84fbba31e19b00aaf748dcc4f67727
Summary:
Adds a new method, `files_attrs`, to the `EdenApi` trait, which allows the caller to specify per-key attributes.
This method is intended to be temporary, and should later be unified with `files`.
Implement `files_attrs` in `FakeEdenApi`, and implement a placeholder method in EagerRepo.
Reviewed By: DurhamG
Differential Revision: D29635233
fbshipit-source-id: d0773927939527d799918139e4abba5ea3b5efca
Summary: Update `FileStore` to use new `indexedlogauxstore` rather than JSON + `indexedlogdatastore`.
Reviewed By: DurhamG
Differential Revision: D29635152
fbshipit-source-id: 3f73b7f7ee1ebc4aa1a0e804973d98d342cbc6ba
Summary: Add utility methods to ContentHash for use in computing aux data
Reviewed By: DurhamG
Differential Revision: D29659855
fbshipit-source-id: fb5c9749899147ea03dbb9e0e19b492c62bde2dd
Summary: Add a new indexedlog wrapper, `indexedlogauxstore`, for storing file aux data for scmstore.
Reviewed By: DurhamG
Differential Revision: D29597641
fbshipit-source-id: 34a9d9095ee580b4d210c82760691496358e0c6d
Summary:
Implement the `content` attribute.
Introduce a new `FileContent` type which stores the hg file blob and metadata, and modify `FileEntry` to allow constructing `FileEntry` with optional `FileContent` builder-style.
Reviewed By: DurhamG
Differential Revision: D29647203
fbshipit-source-id: b956c294d03dc81affc90d7274b2e430a3556e96
Summary:
Add support for optional file attributes to EdenApi, with `content` there as a placeholder.
Modifies the `FileRequest` type, adding a vec of `FileSpec`, which allows the client to specify desired attributes per-key. The existing `keys` field will be treated as a request for the content attribute and may be used in combination with the new per-key attributes.
Reviewed By: DurhamG
Differential Revision: D29634709
fbshipit-source-id: 6571837f87d1635e8529490e10dbe4ba054b7348
Summary: `parse_key` will be re-used in my incoming EdenApi aux data change.
Reviewed By: kulshrax
Differential Revision: D29601071
fbshipit-source-id: 2039c8478e717ff58af2030588dd31ec0b418b19
Summary:
We have a variety of enums in revisionstore that all serve the same purpose. With this change, I've consolidated them to a single type.
Not 100% sure if `StoreType` is the best name, in scmstore I named it `LocalStoreType` to be more clear - open to suggestions. I also decided to keep the variants named `Local` and `Shared` instead of adopting the `Local` and `Cache` terminology I used in scmstore - I'd rather not change that unless we decide to change the terminology everywhere to avoid confusion.
Reviewed By: kulshrax
Differential Revision: D29598025
fbshipit-source-id: 76d5a02230a8c1e5327cc5d90bbcae70049f251d
Summary:
Introduce a basic implementation of per-backend metrics collection for `FileStore`.
Currently, only indexedlog, lfs, and contentstore backends are instrumented, and only with basic metrics. Additional metrics (size, elapsed time, lfs pointer hits) and additional backends (aux, edenapi, lfs server) will be added in a later change.
Reviewed By: kulshrax
Differential Revision: D29552888
fbshipit-source-id: 54267f4de6f14db046cfae271b5c25a6bb494d7c
Summary: Introduce a new config, `devel.skip-metrics`, intended to be used along with `devel.print-metrics` for filtering which metrics are printed in tests.
Reviewed By: DurhamG
Differential Revision: D29641812
fbshipit-source-id: 507099c5ad44a95e906d5ee4235a8a7eca64bd28
Summary: The tests no longer require it, so let's remove all the logic for it.
Reviewed By: quark-zju
Differential Revision: D29643267
fbshipit-source-id: 86b44e3b7b4a4eb19d7f89b54b40957a7648573a
Summary:
This was a hack to allow the tests to produce the same hashes as
before. Let's disable this and fix the remaining test failures. A future diff
will remove the feature entirely.
Where possible I changed input hashes to desc() and output hashes to globs so
hopefully future hash changes are a little easier.
Differential Revision: D29567762
fbshipit-source-id: cf5150c112c56b08f583feba80e5a636cc07db0a
Summary: sendtrees is always on now, and server is always False.
Differential Revision: D29567763
fbshipit-source-id: f58aa7d84e97b7d69959e0796014a7ff09eb81e9
Summary:
This was accidentally committed in an earlier diff. It's unused, so
let's delete it.
Reviewed By: krallin
Differential Revision: D29668138
fbshipit-source-id: 105bf466665c447c37c73462e102d8771d0368ee
Summary:
The amend "--to" flag amends the specified commit rather than ".". Previously it made a temporary commit and used histedit to scoot it back. This is not optimal due to unnecessary disk operations and fragile conflict handling.
Instead, "--to" now does its work in memory, checking for conflicts as it goes. If it finds any conflicts it aborts the operation. It works by generating a patch based on the working context and applying it to the specified commit. Then it does a mini-rebase of the stack tail onto the amended comit.
I tweaked patch.py to unlink the "from" of a rename _after_ creating the "to", which seems like the natural order to me. Other than the repobackend which defers unlinking, I don't see how other patch backends would have worked when renaming a file.
Reviewed By: DurhamG
Differential Revision: D29471052
fbshipit-source-id: 83406ec16b724b27d9a23473b630cafbb75da4d2
Summary:
Support exchange of mutation information during changesets uploads
Add new api for mutation information.
Add implementation for this new api.
Add client side support.
Reviewed By: markbt
Differential Revision: D29661255
fbshipit-source-id: 1d8cfa356599c215460aee49dd0c78b11af987b8
Summary:
Rename function entriesforbundle => entriesfornodes.
This function will be used for edenapi uploads and not related to bundles
Reviewed By: markbt
Differential Revision: D29661256
fbshipit-source-id: b101c31d53f0f535db0b90804472c70b2f3b2c9e