Commit Graph

58968 Commits

Author SHA1 Message Date
Arun Kulshreshtha
41e68f46d3 edenapi: add blocking API
Summary: Add a new `EdenApiBlocking` trait that exposes blocking versions of the `EdenApi` trait's methods, for use in non-async code.

Reviewed By: quark-zju

Differential Revision: D22305396

fbshipit-source-id: d0f3a73cad1a23a4f0892a17f18267374e63108e
2020-07-09 13:08:27 -07:00
Arun Kulshreshtha
30a6cad591 edenapi: add EdenAPI testing CLI
Summary:
This diff adds an EdenAPI CLI program that allows manually sending requests to the server.

Requests are read from stdin in a JSON format (the same format used by the `make_req` tool and the EdenAPI server integration tests). This makes it easy to create and edit requests during debugging.

Responses are re-serialized as CBOR and written to stdout. (The program will refuse to write output if stdout is a TTY.) These responses can then be analyzed using the `read_res` tool (also used by the EdenAPI server integration tests).

The program prints real-time download statistics during data fetching, allow the user to debug performance in addition to correctness.

The program uses standard `hgrc` files to configure the EdenAPI client, which means that one can simulate production settings by specifying a production `hgrc`. By default, it will read from `~/.hgrc.edenapi` rather than `~/.hgrc` since the user will most likely want to configure this program independently of Mercurial.

Reviewed By: quark-zju

Differential Revision: D22370163

fbshipit-source-id: 5d9974bc05fa960d26cd2c87810f4646e2bc55b4
2020-07-09 13:08:27 -07:00
Zeyi (Rice) Fan
30ba5cf783 fix missed use of Path.resolve
Summary:
There was some missed usage of `Path.resolve`. This diff should cover it all.

```
cli $ rg -F ".resolve"
main.py
967:        uid = self.resolve_uid(args.uid)
968:        gid = self.resolve_gid(args.gid)

util.py
622:    `Path.resolve`. This is a helper method to work around that by using
628:    return path.resolve(strict=strict)
```

Reviewed By: chadaustin

Differential Revision: D22459188

fbshipit-source-id: c2a1b132f752cc399ebf34723f26123559939f2a
2020-07-09 13:03:58 -07:00
svcscm
13f8cc5f18 Updating submodules
Summary:
GitHub commits:

0d2bdbf0e0
d11ee337a2
4b74b08738
f70ad03137
f954f2f3bd
d78dc51b4c
c558451941

Reviewed By: jurajh-fb

fbshipit-source-id: 9feb5ad23345380832ed158ba930409bfa1d2d0a
2020-07-09 12:29:53 -07:00
Durham Goode
7411a8e6fa py3: fix pushrebase and infinitepush tests using old mysql connector
Summary:
Apparently some of these tests still run in py2. Let's let it fallback
to the old mysql-connector connector.

Reviewed By: xavierd

Differential Revision: D22458822

fbshipit-source-id: add3da42cbd18e6cb5b34b3038d96cf52c7c6387
2020-07-09 12:17:17 -07:00
Chad Austin
1031c6a211 stop shipping hg_import_helper.py
Summary:
proxy_import_helper.py exists for compatibility with older EdenFS
builds. None of those builds are running anymore, so remove it.

Reviewed By: genevievehelsel

Differential Revision: D22451196

fbshipit-source-id: 4d258b3fafe13bb67bd11259f5d1193a7e5575e6
2020-07-09 11:28:07 -07:00
Ailin Zhang
a1163c34f2 using ProgressCallback type for simplification to print fsck messages
Summary: This diff defines `Overlaychecker::ProgressCallback` to replace repetitive function type declaration.

Reviewed By: genevievehelsel

Differential Revision: D22243160

fbshipit-source-id: ea05e451817a760b5266879b956eaea48dc8d85e
2020-07-09 11:13:18 -07:00
Stanislau Hlebik
361f4e98a7 mononoke: use batch_derive method in derived data utils
Summary:
Previously backfill_batch_dangerous method was calling internal derive_impl() method
directly. That wasn't great (after all, we are calling a function whose name suggests it should only be called from inside derive data crate) and this diff changes it so that we call batch_derive() method instead.

This gives a few benefits:
1) We no longer call internal derive_impl function
2) It allows different types of derived data to override batching behaviour.
For example, we've already overriden it for fsnodes and next diff will override
it for blame as well.

To make it compatible with derive_impl() batch_derive() now accepts derive data mode and mapping

Reviewed By: krallin

Differential Revision: D22435044

fbshipit-source-id: a4d911606284676566583a94199195860ffe2ecf
2020-07-09 10:45:19 -07:00
Katie Mancini
df2b9b9009 open all RocksDB column families for backwards compatabiliy
Summary:
From the Rocks DB documentation:

> When opening a DB in a read-write mode, you need to specify all Column
Families that currently exist in a DB. If that's not the case, DB::Open call
will return Status::InvalidArgument()

This can cause problems for us in a couple of situations:
- When we need to rollback from an eden version where we added a column to
our configuration for RocksDB
- When we delete a column from our configuration for RocksDB

To make sure we do not encounter this error we need to make sure that we still
open all the columns existing in the database, even if they are not in our
configured list of family columns.

Reviewed By: wez

Differential Revision: D22425310

fbshipit-source-id: 9822b22cfedf4633f65bbed96f95a546dd3614f4
2020-07-09 10:28:14 -07:00
Mark Thomas
5c95bf6be2 mutation_store: make separate requests by primordial and successor
Summary:
D22206317 (9a6ed4b6ca) added requesting of predecessor information for suspected primordials
by the successor ID.  This allows recovery of earlier predecessors when partial
data upload resulted in the history of a commit being extended backwards.

Unfortunately, while the individual requests are fast, the combined request
using `OR` in SQL ended up being very slow for some requests.

Separate out the requests at the application level, and aggregate the results
by concatenating them.  `collect_entries` already handles duplicates should any
arise.

Most of the time the successor query will very quickly return no rows, as
it only matters when history is extended backwards, which is expected to be
rare.

Reviewed By: ikostia

Differential Revision: D22456062

fbshipit-source-id: 1e6094b4ac1590a5824e9ae6ef48468766560188
2020-07-09 09:21:01 -07:00
svcscm
347b389db9 Updating submodules
Summary:
GitHub commits:

054a6f4a1d

Reviewed By: jurajh-fb

fbshipit-source-id: 2c19de42dc2878bed85a0e5ed35836518dddb3d9
2020-07-09 07:05:39 -07:00
Viet Hung Nguyen
b7817ffbd8 xdiff: renamed third-party xdiff functions
Summary:
Renamed xdiff functions to avoid linking issues when using both libgit2-sys and xdiff.

When using repo_import tool (https://fburl.com/diffusion/8p6fhjt2) we have libgit2-sys dependency for importing git repos. However, when we derive blame data types, we need to use xdiff functionalities (from_no_parents: https://fburl.com/diffusion/pitukmyo -> diff_hunks: https://fburl.com/diffusion/9f8caan9 -> xdl_diff: https://fburl.com/diffusion/260x66hf). Both libgit2 and eden/scm have vendored versions of xdiff library. Therefore, libgit2-sys and eden/scm share functions with the same signatures, but have different behaviours and when we tried to derive blame, it used libgit2-sys's xdl_diff instead of eden's. This resulted in getting segfaults (https://fburl.com/paste/04gwalpo).
Note: repo_import is the first tool that has tried to import both and the first to run into this issue.

Reviewed By: StanislavGlebik

Differential Revision: D22432330

fbshipit-source-id: f2b965f3926a2dc45de1bf20e41dad70ca09cdfd
2020-07-09 01:20:32 -07:00
svcscm
bf42797bd7 Updating submodules
Summary:
GitHub commits:

b2321c8ade

Reviewed By: jurajh-fb

fbshipit-source-id: cc08168f3ee90e087b03a14b595a24d55e0b28b7
2020-07-09 01:20:32 -07:00
svcscm
0acd74a06b Updating submodules
Summary:
GitHub commits:

9b29fac972
f042ea6b5e
90fd6b0cc8
43b04fc777
344e028687
d58d59be76

Reviewed By: jurajh-fb

fbshipit-source-id: 28171bf907fc72bd722a533281756d6679de8a78
2020-07-08 16:16:42 -07:00
Katie Mancini
81a21ac4fa Increase process cmdline buffer
Summary:
Currently when we are resolving the full command line for a client pid, we only
read the first 256 bytes of the command.

This means that some commands will be truncated, this has come up in some
of our recently added logs. This ups the buffer size so that we can
hopefully get the full command line.

The longer term solution would be to implement the something fancier mentioned
in the comment in the code copied below, but also has drawbacks as mentioned.

> // Could do something fancy if the entire buffer is filled, but it's better
// if this code does as few syscalls as possible, so just truncate the
// result

Reviewed By: wez

Differential Revision: D22436219

fbshipit-source-id: 80a9aecfe148aa3e333ca480c6a8cb8b9c5c86f2
2020-07-08 15:48:15 -07:00
Jun Wu
b80966f93c revlog: turn on head-based-commit-transaction for tests
Summary:
Bypass truncation-based transaction if narrow-heads is on.

The transaction abort still works logically because commit references stay
unchanged on abort.

Related EdenFS and Mononoke tests are updated. Mononoke tests probably
shouldn't rely on revlog / fncache implementation details in hg.

Reviewed By: DurhamG

Differential Revision: D22240186

fbshipit-source-id: f97efd60855467b52c9fb83e7c794ded269e9617
2020-07-08 14:33:58 -07:00
Jun Wu
3244065fb4 revlog: bypass some transaction logic when adding commits with modern setup
Summary:
With narrow-heads, visible heads are explicitly controlled by commit
references. Adding commits can be just writing them out directly.

This mainly removes the "buffered" writes of `00changelog.i`.
Instead of writing pending changes to `00changelog.i.a`, they
are directly written to `00changelog.i` (or buffered in memory
with future changes).

This does not bypass all transaction logic. Truncation can still
happen. Strip is also unaffected.

The change is incomplete. In the future, pending changes will
be written in-memory to the Rust HgCommits struct and we no
longer write directly to revlog.

Reviewed By: DurhamG

Differential Revision: D22240176

fbshipit-source-id: ac9d20ab95ff304fb285a503d2d3db815942d5b3
2020-07-08 14:33:58 -07:00
Jun Wu
b61236537c util: define istest
Summary: This makes pyre aware that `istest` exist on `util`.

Reviewed By: DurhamG

Differential Revision: D22421141

fbshipit-source-id: 50dd264988ffe0e93597df2d540f3de03e8aea4d
2020-07-08 14:29:31 -07:00
Jun Wu
4b09e88ceb amend: do not auto restack if there are no visible children
Summary:
With modern configs, repo is unfiltered and `ctx.children()` returns unfiltered
commits. Use the revset function `children` instead so invisible children won't
trigger auto restack.

Reviewed By: DurhamG

Differential Revision: D22421689

fbshipit-source-id: 3ec8f616c17254ee9ccfcad96673d209b9163da6
2020-07-08 14:10:37 -07:00
Jun Wu
3d82fd408a amend: add a new auto restack test case
Summary: The test demostrates an issue with the current auto restack logic.

Reviewed By: DurhamG

Differential Revision: D22421690

fbshipit-source-id: e035cd3212357f24322f8eb9ec5941767ad780d9
2020-07-08 14:10:37 -07:00
Arun Kulshreshtha
fdb8859422 edenapi: add new EdenAPI client
Summary:
This diff is a complete, ground-up rewrite of the EdenAPI client. Rather than attempting to use `libcurl` directly, it relies on the new `http_client` crate, which makes the code considerably simpler and allows for a proper async interface.

The most notable change is that `EdenApi` is now an async trait. A blocking API is added later in the stack for use in non-async contexts.

Reviewed By: quark-zju

Differential Revision: D22305397

fbshipit-source-id: 4c1e5d3091d6dd04cf13291e7b7a4217dfdd249f
2020-07-08 12:51:04 -07:00
Arun Kulshreshtha
014f1a5289 http_client: add buffering to CborStream
Summary:
As was pointed out in the review for D22280745 (d73c63d862), `CborStream` is inefficient in situations where the underlying stream produces chunks that are much smaller than the size of the serialized items. To avoid pathological behavior, make `CborStream` buffer the incoming data, and only attempt deserialization if enough data has accumulated.

For now, the buffer size is fixed (with a default of 1MB, chosen arbitrarily). In the future, it might make sense to have the stream adjust the buffer size based on the average size of observed deserialized values.

Reviewed By: quark-zju

Differential Revision: D22370164

fbshipit-source-id: ed940c56ca2cbbfc07f01d47becf6f1d71872872
2020-07-08 12:51:04 -07:00
Jun Wu
e440d3ce2b revlogindex: update nodemap even if it's non-symlink and mmaped on Windows
Summary: On Windows a mmap file cannot be replaced. Detect that and delete manually.

Reviewed By: farnz

Differential Revision: D22428731

fbshipit-source-id: 4d308a07aae02dcaf2aedb7b0267a535c2e09c92
2020-07-08 11:31:21 -07:00
svcscm
ed7818024c Updating submodules
Summary:
GitHub commits:

b90f25f72c
311a408958

Reviewed By: jurajh-fb

fbshipit-source-id: 1af50ec8a7283a23b9a9ffe215cc0fc1bc148d12
2020-07-08 11:19:26 -07:00
Durham Goode
8902138221 mysql: set ssl_disabled for infinitepush and pushrebase
Summary:
Diff D22140187 (74da65a38f) upgraded mysql-connector-python, which enabled ssl by
default. Our db doesn't support this, so we disabled it for hgsql but forgot to
for infinitepush and pushrebase. Let's do it for them too.

Reviewed By: krallin

Differential Revision: D22416533

fbshipit-source-id: bc91ccd2ab4d9bc8ba423c8e60fc0191c7ff78c6
2020-07-08 09:15:29 -07:00
Thomas Orozco
ae917ba227 mononoke/virtually_sharded_blobstore: make sampling rate tunable
Summary: As it says in the title.

Reviewed By: farnz

Differential Revision: D22432526

fbshipit-source-id: 42726584689cbc2f5c9138b42b7bf77939921bdd
2020-07-08 09:07:19 -07:00
Kostia Balytskyi
75db021d70 live_commit_sync_config: make it into a trait
Summary:
The goal is to make it easier to implement unit tests, which depend on `LiveCommitSyncConfig`. Specifically, `scs` has a piece of code, which instantiates `mononoke_api::Repo` with a test version of `CommitSyncConfig`. To migrate it to `LiveCommitSyncConfig`, I need to be able to create a test version of that. It **is** possible now, but would require me to turn a supplied instance of `CommitSyncConfig` back into `json`, which is cumbersome. Using a `dyn LiveCommitSyncConfig` there, instead of a concrete struct seems like a good idea.

Note also that we are using this technique in many places: most (all?) of our DB tables are traits, which we then implement for SQL-specific structs.

Finally, this diff does not actually migrate all of the current users of `LiveCommitSyncConfig` (the struct) to be users of `LiveCommitSyncConfig` (the trait), and instead makes them use `CfgrLiveCommitSyncConfig` (the trait impl). The idea is that we can migrate bits to use traits when needed (for example, in an upcoming `scs` diff). When not needed, it's fine to use concrete structs. Again, this is already the case in a a few places: we sometimes use `SqlSyncedCommitMapping` struct directly, instead of `T: SyncedCommitMapping` or `dyn SyncedCommitMapping`.

Reviewed By: StanislavGlebik

Differential Revision: D22383859

fbshipit-source-id: 8657fa39b11101684c1baae9f26becad6f890302
2020-07-08 08:34:06 -07:00
Thomas Orozco
dd1aaf90fe mononoke/{hgproto,mercurial_bundles}: eliminate O(N^2) behavior in decoding
Summary:
This updates the AsyncRead implementations we use in hgproto and
mercurial_bundles to use a LimitedAsyncRead. The upshot of this change is that
we eliminate O(N^2) behavior when parsing the data we receive from clients.

See the earlier diff on this stack for more detail on where this happens, but
the bottom line is that Framed presents a full-size buffer that we zero out
every time we try to read data. With this change, the buffer we zero out is
comparable to the amount of data we are reading.

This matters in commit cloud because bundles might be really big, and a single
big bundle is enough to take an entire core for a spin or 20 minutes (and they
achieve nothing but time out in the end). That being said, it's also useful for
non-commit cloud bundles: we do occasionally receive big bundles (especially
for WWW codemods), and those will benefit from the exact same speedup.

One final thing I should mention: this is all in a busy CPU poll loop, and as I noted
in my earlier diff, the effect persists across our bundle receiving code. This means
it will sometimes result in not polling other futures we might have going.

Reviewed By: farnz

Differential Revision: D22432350

fbshipit-source-id: 33f1a035afb8cdae94c2ecb8e03204c394c67a55
2020-07-08 08:07:13 -07:00
svcscm
f53a323105 Updating submodules
Summary:
GitHub commits:

eaf22e04bc
fdedffae5c

Reviewed By: jurajh-fb

fbshipit-source-id: e4c940a07fe215f4873efc884070a1b2f598edb7
2020-07-08 05:45:35 -07:00
Lukas Piatkowski
0eb9d79a46 rust/reindeer: update eventsource to 0.5
Summary: The 0.3 version (currently being used only in one crate eden/scm/lib/commitcloudsubscriber) is using an old openssl crate which doesn't work with openssl library installed on most machines (Both in FB and on GitHub Actions).

Reviewed By: mitrandir77

Differential Revision: D22430649

fbshipit-source-id: b8fa930841dbcdd4c085d8c9488d768b3526e1c4
2020-07-08 04:15:21 -07:00
svcscm
10a10b7eaa Updating submodules
Summary:
GitHub commits:

e486984526

Reviewed By: jurajh-fb

fbshipit-source-id: 773b3fdee2d83b75e1b5243cf868a72bce1ee551
2020-07-08 04:15:20 -07:00
svcscm
520220ca4b Updating submodules
Summary:
GitHub commits:

3e909eb6ba
d7db168282
042d5517bf
ce83fdf26f
3b69b6a9b4
c25225aaaa
9aae18d0a3
ccefd241a4

Reviewed By: jurajh-fb

fbshipit-source-id: d984cbf43459bdf5b5f4747fa0e17b959568a06e
2020-07-07 21:16:45 -07:00
Durham Goode
f8b098febb dirstate: prevent absolute paths in the dirstate
Summary:
The dirstate code did not prevent absolute paths from being added to
the structure, but they would cause problems later when those paths were passed
to Rust. We should move the dirstate to use the Rust path type, but for now
let's just block absolute paths.

Reviewed By: quark-zju, xavierd

Differential Revision: D22426592

fbshipit-source-id: 4ae9f004237e4c54336beb03aab29517254ae441
2020-07-07 20:32:05 -07:00
svcscm
72dc2a20b4 Updating submodules
Summary:
GitHub commits:

a5ff2750bf
6d3bf3cf8d
4bf00e4d3b
640586980e
0589213278
226d1f9c73
2fc4eb6d14
b7f698aea7
79bb7c0889
7b287f137b
eb9a7ee955
99d8a38a85

Reviewed By: jurajh-fb

fbshipit-source-id: 3700d596e247155bd233030d413f1c1365377be6
2020-07-07 20:24:02 -07:00
Xavier Deguillard
71a9ae11d9 pyrevisionstore: do not abort on partial fetches
Summary:
We've seen a handful of users complaining about clone failing and not being
able to recover from it. From looking at the various reports and the
stacktraces, I believe this is caused by a flaky connection on the user end
that causes the Python code to retry the getpack calls. Before retrying, the
code will figure out what still needs fetching and this is done via the
getmissing API. When LFS pointers were fetched, the LFS blobs aren't yet
present on disk, and thus the underlying ContentStore::get_missing will a set
of keys that contain some StoreKey::Content keys. The code would previously
fail at this point, but since the key also contains the original key, we can
simply return this, the pointers might be refetched but these are fairly small.

Taking a step back from this bug, the issue really is that the retry logic is
done in code that cannot understand content-keys, and moving it to a part of
the code that understands this would also resolve the issue.

I went with the simple approach for now, but since other remote stores
(EdenAPI, the LFS one, etc) would also benefit from the retry logic, we may
want to move the logic into Rust and remove the getmissing API from the Python
exposed ContentStore.

Reviewed By: DurhamG

Differential Revision: D22425600

fbshipit-source-id: 69c2898cc302d2170cd0f206c89189c341db5278
2020-07-07 19:44:01 -07:00
Jun Wu
8e199e9a44 debugcomplete: show aliases with -v
Summary:
Make zsh_completion complete standard aliases like `checkout`.
This restores the behavior before D18463299 (54451585ce) stack.

Reviewed By: farnz

Differential Revision: D22396737

fbshipit-source-id: 745761041d6d1dec6adba2efb102e2021a01b36b
2020-07-07 16:47:45 -07:00
svcscm
bb99d66613 Updating submodules
Summary:
GitHub commits:

f0e261bd5c

Reviewed By: jurajh-fb

fbshipit-source-id: 32bb48fa7a39157101393cd943d204855f1d6335
2020-07-07 16:47:45 -07:00
svcscm
483ba3e69b Updating submodules
Summary:
GitHub commits:

4bdc9797e8
3e9186f173
dbf5c55812
d16987d9e3
a7d815cb5c

Reviewed By: jurajh-fb

fbshipit-source-id: dcda80187b720d873ee7fd0487d291d40e17d00d
2020-07-07 13:33:16 -07:00
Chad Austin
4c0996afa5 make systemd management functions explicitly async
Summary:
Rather than dynamically allocating an event loop in the systemd async
code, make all the corresponding functions async, so the caller is
responsible for threading an event loop down.

Reviewed By: genevievehelsel

Differential Revision: D21894106

fbshipit-source-id: 398c769c30c85a3bb210dbc209f34f9f7336996c
2020-07-07 11:31:33 -07:00
Genevieve Helsel
bda44c5201 move is_system_idle to procutils
Summary: I'd eventually like to use this in the edenfs_monitor, so moving it to `proc_utils` for sharibility.

Reviewed By: chadaustin

Differential Revision: D21998763

fbshipit-source-id: 052e78fb8e58515f98eb465b8041fd0e621fc9da
2020-07-07 11:22:33 -07:00
Genevieve Helsel
cd1196bb28 move eden idleness detection to EdenFSProcess
Summary: I'd eventually like to use this in the edenfs_monitor, so I'm adding this to `proc_utils` for future ease of use.

Reviewed By: chadaustin

Differential Revision: D21987390

fbshipit-source-id: 076672b44311c2a1e0cac934c0674a18a87649af
2020-07-07 11:22:33 -07:00
Genevieve Helsel
0f9cff3b88 Add tests for ignored file with carriage return in name
Summary: On macOS, "Icon?" (aka "Icon\r") is a sometimes added. This file is weird to ignore, and should be ignored using "Icon\r\r" or "Icon[/r]". This won't be hidden with "Icon\r" or "Icon\r"

Reviewed By: chadaustin

Differential Revision: D22050682

fbshipit-source-id: 51d7d4c2414a07b959120455ae991d2425c1ea4d
2020-07-07 11:13:12 -07:00
svcscm
f4c80a7726 Updating submodules
Summary:
GitHub commits:

4ce3b0d435

Reviewed By: jurajh-fb

fbshipit-source-id: a4dd30f33262c7330d99cb8f2ace1039ff706c59
2020-07-07 10:53:46 -07:00
Thomas Orozco
8c994e7682 mononoke/fastreplay: log replay success & failure counts to ODS
Summary:
I want to update the health check to stop averaging averages (like in
D22394014). To do this, I need those counters.

Reviewed By: ahornby

Differential Revision: D22410196

fbshipit-source-id: aa5cbfe6607be3b953887f1639e1de54baac7389
2020-07-07 06:41:23 -07:00
Stanislau Hlebik
886e34d17b mononoke: log size of fetched undesired files
Summary:
Just knowing the number of fetched undesired files doesn't give the full
picture. e.g. fetching lots of small files is better than fetching single
multi-Gb file.
So knowing the size of files is helpful

Reviewed By: krallin

Differential Revision: D22408400

fbshipit-source-id: 7653c1cdceccf50aeda9ce8a4880ee5178d4b107
2020-07-07 06:23:01 -07:00
Thomas Orozco
78b9dbb470 changelog: fix undefined variable
Summary:
This is causing the Mononoke and hg tests to break on an undefined variable.
This looks like it might have been a refactoring accident when the code
defining this got extracted into D22240176 (but the code using it landed in
D22240177 (ec58e72903)).

This diff unbreaks the tests by defaulting the parameter to False (which
seems coherent with the idea of that latter diff), and puts it in a place
that'll trigger a merge conflict for quark-zju when he rebases D22240176.

Reviewed By: farnz

Differential Revision: D22408588

fbshipit-source-id: 496808742a13dfeb17989123742a0aa8bae17b38
2020-07-07 02:37:42 -07:00
Ratnadeep Joshi
ce4b8122ae Some minor modifications to verbiage in documentation
Summary: [edenfs] Some minor modifications to verbiage in documentation

Reviewed By: chadaustin

Differential Revision: D22394129

fbshipit-source-id: 2d662e56d621fd5e5d5ba6de284ca3d08f8bd4e5
2020-07-06 22:20:17 -07:00
Durham Goode
f09839fdf9 merge: don't do checkunknown for files that we know are not untracked
Summary:
checkunknown is quite expensive since it has to read the contents of
every untracked file, which can be 10's of thousands of non-parallel stats and
reads. For files that don't exist in the working copy, it's just wasted work to
stat for the files at all. Status can efficiently tell us what files are
unknown, so let's use that to triage most "unknown" files to normal writes
before we even get to checkunknown.

The downside of this approach is that it makes an additional call to status,
which is not cached (only non-unknown+non-ignore+non-clean status calls are
cached). We could add more caching if this is a problem.

This doesn't help the case where a user might have 10k+ untracked files due to a
ctrl+c'd checkout, but we'll improve that in a future diff.

Reviewed By: quark-zju

Differential Revision: D22366758

fbshipit-source-id: b54fec113dc162f97a35e705ed083ddd14babe55
2020-07-06 22:10:56 -07:00
svcscm
37dba19f0b Updating submodules
Summary:
GitHub commits:

f79e914d57

Reviewed By: jurajh-fb

fbshipit-source-id: a430ffd620d07923a2c8a89234d8b36703891804
2020-07-06 21:48:22 -07:00
Arun Kulshreshtha
5f0181f48c Regenerate all Cargo.tomls after upgrade to futures 0.3.5
Summary: D22381744 updated the version of `futures` in third-party/rust to 0.3.5, but did not regenerate the autocargo-managed Cargo.toml files in the repo. Although this is a semver-compatible change (and therefore should not break anything), it means that affected projects would see changes to all of their Cargo.toml files the next time they ran `cargo autocargo`.

Reviewed By: dtolnay

Differential Revision: D22403809

fbshipit-source-id: eb1fdbaf69c99549309da0f67c9bebcb69c1131b
2020-07-06 20:49:43 -07:00