Commit Graph

62069 Commits

Author SHA1 Message Date
Thomas Orozco
c9568598fb mononoke/manifest: add Entry::map_leaf and Entry::map_tree
Summary: It's useful sometimes, like in the next diff.

Reviewed By: mitrandir77

Differential Revision: D25422597

fbshipit-source-id: 0ebb5dcc349bbaacac3dddf03f19e5e092042468
2020-12-10 03:07:45 -08:00
svcscm
0578e28081 Updating submodules
Summary:
GitHub commits:

d733c91dc2
70663b1baa
8ff6557e7f

Reviewed By: bigfootjon

fbshipit-source-id: fabfc9b75f16a5baff9c8085b43221846f052f00
2020-12-10 03:07:45 -08:00
svcscm
717240f8db Updating submodules
Summary:
GitHub commits:

1d045c52be
a37bd85d91
caf722e4a5
1e90876ea6
2015cbb29d
e388db9ea3
cd9c64d624
19a14e1fa8
833b71666c
72125389a9
1a69536923
d489df2bce

Reviewed By: bigfootjon

fbshipit-source-id: 5f7ffd6bc0fcc9dc09c52f2843b5aded5573e334
2020-12-09 18:12:45 -08:00
Zeyi (Rice) Fan
55c313e1b7 GitHub Action: fix Windows build
Summary:
Watchman's GitHub Action has been failing because of the use of `set-env` is deprecated due to security issues. See https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/ for details.

See https://github.com/facebook/watchman/runs/1520165260?check_suite_focus=true for example of failures.

To fix it we just need to write to the special environment file.

Reviewed By: chadaustin

Differential Revision: D25412442

fbshipit-source-id: d31ef025189c8aebfa08d434d9373f5da7d4690e
2020-12-09 17:47:48 -08:00
svcscm
23b24749b8 Updating submodules
Summary:
GitHub commits:

7b65100fd8
8a1488efbf

Reviewed By: bigfootjon

fbshipit-source-id: 4d3fb5282bbf96c21ec2e73d72cdab88ee660329
2020-12-09 17:47:47 -08:00
svcscm
0790830498 Updating submodules
Summary:
GitHub commits:

5db8c1751d
3add44304f
89cc06b3e7

Reviewed By: bigfootjon

fbshipit-source-id: a341f549472ffa47e3afff28a48061cf7530b7c3
2020-12-09 16:49:05 -08:00
Saurabh Singh
0f465f7dc9 hooks: show the size of the large commit being blocked
Summary:
This is useful data to see how much we are over the limit. I noticed
the missing data while resolving
https://fb.workplace.com/groups/scm/permalink/3450652774984318/ as the oncall.

Reviewed By: StanislavGlebik

Differential Revision: D25414427

fbshipit-source-id: ec4bbca9c21a4bf0e675ec1cd82e4e703cd88631
2020-12-09 16:44:41 -08:00
Arun Kulshreshtha
ef67b259ee edenapi: allow single cert file
Summary: Previously, the EdenAPI client (and Mercurial's `http-client`) required both a client certificate and private key to be specified individually in order to use TLS mutual authentication. However, libcurl supports having both the certificate and key concatenated together into a single PEM file. This diff makes it possible to simply specify the combined file as the `cert`, leaving the `key` unset.

Reviewed By: quark-zju

Differential Revision: D25323786

fbshipit-source-id: 1800be3ef82ec4dfa89d725f5860190172994c89
2020-12-09 15:07:19 -08:00
Arun Kulshreshtha
b45dbd49ff auth: treat empty cert paths as unset
Summary: Treat empty paths as `None`, which allows certificate and key paths to be unset via a `--config` flag (e.g. `hg debughttp --config auth.edenapi.key=`). This would normally require adding an `%unset` line to the appropriate hgrc, which adds friction to ad-hoc command line usage.

Reviewed By: quark-zju

Differential Revision: D25416531

fbshipit-source-id: 15aae78d9b3a82227278f33def45fa960aa65a98
2020-12-09 15:07:19 -08:00
svcscm
8c1922cf4d Updating submodules
Summary:
GitHub commits:

2d5c3bb1e3
c61e867720
47b39c2376

Reviewed By: bigfootjon

fbshipit-source-id: b2deeded890f3f65464670921232e551f2ad3f1d
2020-12-09 15:07:19 -08:00
svcscm
196f1d4fb7 Updating submodules
Summary:
GitHub commits:

b021039720
31a9cac553
98236fb10e
cd4fe23b9f
ca8d1abccd

Reviewed By: bigfootjon

fbshipit-source-id: 51584721668cde276ea79ed48cd83a1e7a765878
2020-12-09 13:57:37 -08:00
Arun Kulshreshtha
23569dfc4d Regenerate all autocargo-managed Cargo.tomls
Reviewed By: singhsrb, dtolnay

Differential Revision: D25417653

fbshipit-source-id: 81057698ae457a28b7aac6f7a1b32bcec9517eff
2020-12-09 12:44:29 -08:00
svcscm
657df6d789 Updating submodules
Summary:
GitHub commits:

9c36cd18a1
74cdae318b
2324f1fee8
fddbf10de5
0a2e7beaca
123a0bd1ff
c5369485be
6c7e239ecf

Reviewed By: bigfootjon

fbshipit-source-id: 4889ee4525991ae6aeb1560efb9601ea49ff1914
2020-12-09 10:51:57 -08:00
Jun Wu
2e7f12ab4c template: fix ifcontains(rev, revset('.'), ...) compatibility with f64 compatibility
Summary:
The f64 compatibility added by D25079001 (e91552fefe) changes the `{rev}` template output.
However, the revset object is not aware of the rev mapping so the following
pattern will stop working:

  ifcontains(rev, revset('.'), '@', 'o')
  # rev: mapped, but not contains in `revset('.')`

Fix it by teaching `ifcontains(a, b, ...)` to disable f64 compatibility when
evaluating `a`, since `a` is not going to be printed out.

This fixes an issue in VSCode ISL that "You are here" is missing on non-master
commits.

Reviewed By: singhsrb

Differential Revision: D25404673

fbshipit-source-id: 3e53a2ce1f135f8825c195c5a3061dad0359c4b2
2020-12-09 10:36:28 -08:00
svcscm
eef0634c31 Updating submodules
Summary:
GitHub commits:

cd39f451c7
1e4fcfabc2

Reviewed By: bigfootjon

fbshipit-source-id: 872a1d472ffec65b1989bef462cbebf4bf09ecb8
2020-12-09 09:16:19 -08:00
Genevieve Helsel
279af4b5ef externally log prefetch profile deactivation
Summary: In addition to tracking profile activation, it would be nice to see when people deactivate profiles.

Reviewed By: kmancini

Differential Revision: D25372256

fbshipit-source-id: e6bfefe3c838465ba9ed10d622342bdf3df1c40a
2020-12-09 09:12:37 -08:00
Genevieve Helsel
cbd827cd96 add external logging for prefetch profiles
Summary: It would be interesting to track which profiles are activated most often. Also, it may be helpful to track which users are using this feature and generally track usage.

Reviewed By: kmancini

Differential Revision: D25372255

fbshipit-source-id: 2107cdce2a997180547dc63ec654c8d72ced5eb4
2020-12-09 09:12:37 -08:00
Xavier Deguillard
77f3f239a2 store: replace use of ctreemanifest with small manifest parser
Summary:
The code still took a dependency on Mercurial's old manifest code to parse
manifests. It turns out the manifests have a very simple format that we could
parse directly.

This avoids various copies, conversions, std::list, removes ~1k lines of code,
at the expense of adding ~100 lines of code (some of them being C++
boilerplate).

Reviewed By: fanzeyi

Differential Revision: D25385018

fbshipit-source-id: 90d4cda2b7797584bc48c086d5592a7ecaa05dfc
2020-12-09 08:40:38 -08:00
Durham Goode
476c8b7b30 contentstore: add config to write local data to indexedlog
Summary:
We already have a config to write shared data to an indexedlog. Let's
add a similar config for local data.

Reviewed By: xavierd

Differential Revision: D23909569

fbshipit-source-id: 87317554beb6bef8237e6a900403701662c3c0d0
2020-12-09 07:07:40 -08:00
Durham Goode
4f611364eb revisionstore: add repair support to IndexedLogHgIdDatatore
Summary:
We temporarily dropped repair support when transitioning to using Store instead
of a raw RotateLog. Let's add that back now.

Reviewed By: xavierd

Differential Revision: D25371622

fbshipit-source-id: e28fc425a6ffb50c93540672b0df75a172ebbe9c
2020-12-09 07:07:40 -08:00
Durham Goode
925e457ae7 revisionstore: allow persistent IndexedLogData
Summary:
In a future diff we'll use the indexedlog stores for local data. We
want those to exist forever, so let's move IndexedLogHgIdDataStore to use a
Store under the hood, and add an enum for distinguishing between the two types
at creation time.

Reviewed By: xavierd

Differential Revision: D23915622

fbshipit-source-id: 296cf6dfcd53e5cf1ae7624fdccedf0a60a77f22
2020-12-09 07:07:40 -08:00
Durham Goode
b9464c4718 revisionstore: add repair functions to Store
Summary:
In a future diff we'll be moving the IndexedLogHgIdDataStore to use the Store
type (that hides the differences between IndexedLog and RotateLog). To do so, it
needs to support repairs. Let's do some minor refactoring to enable this.

Reviewed By: xavierd

Differential Revision: D25371623

fbshipit-source-id: 846cb5f8c21f1e6b550a45259cc8da24cc65b13b
2020-12-09 07:07:39 -08:00
svcscm
9503303473 Updating submodules
Summary:
GitHub commits:

35d5f61e46

Reviewed By: bigfootjon

fbshipit-source-id: 6e206a00455075aad5933231d85ee4cd0f1d4c95
2020-12-09 07:07:39 -08:00
svcscm
b55f6ab136 Updating submodules
Summary:
GitHub commits:

1e9d6cac5f
a7572ee3d9

Reviewed By: bigfootjon

fbshipit-source-id: d8a81c480f14576de432a0a4f7edb2d7c6b4780a
2020-12-08 18:58:46 -08:00
Stefan Filip
e7be876b6f blobrepo: update factory to set SegmentedChagelog on the production setup
Summary:
Same as development branch. Without configuration changes, nothing changes for
the production codepath.

Reviewed By: quark-zju

Differential Revision: D25405026

fbshipit-source-id: aff705aa5f96814f1f1d7552454ab1d0c13afd92
2020-12-08 18:30:25 -08:00
Stefan Filip
5f6d1a2c61 edenapi: add full_idmap_clone endpoint
Summary:
The end goal is to have clients using a sparse IdMap. There is still some work
to get there though. In the mean time we can test repositories that don't use
any revlogs. The current expections for those repositories are that they have
a full idmap locally.

Reviewed By: quark-zju

Differential Revision: D25075341

fbshipit-source-id: 52ab881fc9c64d0d13944e9619c087e0d4fb547c
2020-12-08 18:30:24 -08:00
Stefan Filip
3afaeb858a segmented_changelog: add SegmentedChangelog::full_idmap_clone_data
Summary:
The client dag cannot currently be instantiated with a sparse idmap (aka
universal commit idmap). Is should be usable with a full idmap.  To test
repositories that use segmented changelog exclusively we add the capability of
cloning the full idmap.

I currently see StreamCloneData as an experiment. I am open to suggestions
around what structure we should have for the regular long term clone endpoint.
That said, I am leaning towards converting clone_data to return
StreamCloneData.  Overall, Segmented Changelog has a few knobs that influence
how big the IdMap ends up being so the code that is more flexible will be more
useful long term.  To add to that, we transform data higher in the stack using
streaming and this data does similar fetching, it seems that we should have a
stream idmap exposed by clone_data.

Reviewed By: quark-zju

Differential Revision: D24966338

fbshipit-source-id: 019b363568e3191280bd5ac09fc15062711e5523
2020-12-08 18:30:24 -08:00
Stefan Filip
2193b84b43 autocargo: regen
Summary: Regen autocargo

Reviewed By: quark-zju

Differential Revision: D25409963

fbshipit-source-id: 7dbbe420aeb30248bf43d3a96a9aa6a47bb2b0be
2020-12-08 18:30:24 -08:00
svcscm
c653ca7fd5 Updating submodules
Summary:
GitHub commits:

20d248ed99

Reviewed By: bigfootjon

fbshipit-source-id: eae82d3cb66caca37a8320830b2b4e893e442065
2020-12-08 18:20:59 -08:00
Jun Wu
49c6f86325 streams: disable commit text prefetching
Summary:
It uses the Python iterator -> Rust stream code path, which can might
cause deadlock with async_runtme::block_on_exclusive. Avoid running
main Python logic in multiple threads.

The prefetching is only useful for lazy commit text backend, which hasn't been
rolled out yet. So disabling it won't cause pref regressions.

Note: This should not affect Phabricator Status prefetching.

Reviewed By: sfilipco

Differential Revision: D25350916

fbshipit-source-id: 49e9c4fea5ff48e1f579aa602693d38c7dd96fc7
2020-12-08 17:21:40 -08:00
Genevieve Helsel
e0c23ea593 fix redirect list test on Windows
Summary:
From wez's description (slightly edited):

a symlink direction resolves outside the repo, and the new validation logic doesn't like that. the test is doing a redirect add bind then redirect add symlink. The second add is intended to implicitly delete the first one if the config is different, but it's not smart enough to realize that that is happening.

This adds an explicit `redirect del` before we do our second `redirect add`

Reviewed By: xavierd

Differential Revision: D25405011

fbshipit-source-id: 107fd272bbe830d8b23e437286ced00460902d91
2020-12-08 15:54:48 -08:00
svcscm
3ba01f3e74 Updating submodules
Summary:
GitHub commits:

182401686c
28576c4e07
93c6c18cf9
65bb830922
5bd1607ac3

Reviewed By: bigfootjon

fbshipit-source-id: 1d04c3b059ca033b8a2f0f13a914b131b38a4d1e
2020-12-08 15:54:48 -08:00
svcscm
90efe3f872 Updating submodules
Summary:
GitHub commits:

cea6de83d7

Reviewed By: bigfootjon

fbshipit-source-id: db572306ce24aff77cfd695b462118962c40eeb3
2020-12-08 09:54:45 -08:00
Thomas Orozco
6b04c4d7d2 mononoke/warm_bookmarks_cache: don't initialize ALL bookmarks at once
Summary:
All the bookmarks is *a lot* of bookmarks. Don't do them all at once. Also, add
some logging output so we can tell how far along we are.

Reviewed By: HarveyHunt

Differential Revision: D25397297

fbshipit-source-id: c19b99123f88e05e99bff61e2399a62d378a6671
2020-12-08 08:30:56 -08:00
svcscm
cdc41a700f Updating submodules
Summary:
GitHub commits:

b1270a8cfd

Reviewed By: bigfootjon

fbshipit-source-id: 0ec17df481885714b8a39f992588ea332464594f
2020-12-08 08:30:56 -08:00
svcscm
60b5a44e7f Updating submodules
Summary:
GitHub commits:

d8bd9fc7b3
a683d80cc4

Reviewed By: bigfootjon

fbshipit-source-id: 39759bddedde1de1d268e9d60f026928908fb702
2020-12-07 21:10:31 -08:00
Lukas Piatkowski
00fe313eff mononoke/unbundle: get rid of futures 0.1
Summary: Also added a TryShared future to futures_ext. The problem with regular Shared is that if you want to share anyhow::Result the Error part of it is not cloneable. This TryShared will work nicely when returning anyhow::Result, which most of our code does.

Reviewed By: aslpavel

Differential Revision: D25223317

fbshipit-source-id: cf21141701884317a87dc726478dcd7a5a820c73
2020-12-07 20:41:26 -08:00
svcscm
b7828997b3 Updating submodules
Summary:
GitHub commits:

bf48781272
8a06fe278f
63517e7ee8

Reviewed By: bigfootjon

fbshipit-source-id: 6adbfaf5f0037bed2dc672adf6867d0645b48a83
2020-12-07 20:41:26 -08:00
svcscm
56ec743dda Updating submodules
Summary:
GitHub commits:

b0400ea229
20006c6017
f69a58c123
8b93e5b315

Reviewed By: bigfootjon

fbshipit-source-id: 65854068ca06c56a0a53d49eefe62540ba9e78f5
2020-12-07 17:33:02 -08:00
svcscm
c6c78f7bb9 Updating submodules
Summary:
GitHub commits:

50d301e9e0

Reviewed By: bigfootjon

fbshipit-source-id: 5830bc613fa63ac9c1d9200e37828335be6fabb2
2020-12-07 17:33:01 -08:00
svcscm
f54ccf1b08 Updating submodules
Summary:
GitHub commits:

a183ecb30a
bf3b5e1e01
ec58e38aaa
9c3fa2152b

Reviewed By: bigfootjon

fbshipit-source-id: 75e523a70aa2ed15dfc172b6b67d59d1fc8f7cc7
2020-12-07 12:49:18 -08:00
Wez Furlong
7470b6023b eden: add config and awareness for our edenfs.kext
Summary:
This commit adds a new eden configuration option that
controls whether we try to load our edenfs.kext in preference to
an alternative fuse implementation on macOS.

The majority of this diff is plumbing to convey the configuration
value through to the privhelper, which is relatively restrictive
due to its root-ness.

I've also updated watchman and mercurial to be aware of the new
filesystem type that shows up in the mount table.

Reviewed By: genevievehelsel

Differential Revision: D25065462

fbshipit-source-id: 4f35b9440654298e2706a0d0613d97eb63451999
2020-12-07 11:18:09 -08:00
svcscm
3b746c2dd7 Updating submodules
Summary:
GitHub commits:

747ad65179
10081b6ef1
b77569f18b
e6440da900
2a967fdd90
8a14a3ae98
d92da39bf0
e58d1120a6

Reviewed By: bigfootjon

fbshipit-source-id: c797361affa04f501bd3a4908dc0c17e23ffbe08
2020-12-07 11:18:09 -08:00
svcscm
983c110cef Updating submodules
Summary:
GitHub commits:

c28cdc279d

Reviewed By: bigfootjon

fbshipit-source-id: bd2ca7bbebd241611b1cb14dfd515c07e479d984
2020-12-07 09:38:47 -08:00
Thomas Orozco
16bac45a07 mononoke/bonsai_globalrev_mapping: set perf counters
Summary:
Like it says in the title. This is helpful to measure the number of SQL queries
we make. This required actually threading in a CoreContext, which we didn't
have before.

Reviewed By: StanislavGlebik

Differential Revision: D25336069

fbshipit-source-id: 35677c55550e95b5126de29c2a824b4eda32092c
2020-12-07 08:23:19 -08:00
Thomas Orozco
482ab2d2a6 eden/mononoke: allow turning on the bonsai / globalrev cache
Summary: Like it says in the title.

Reviewed By: StanislavGlebik

Differential Revision: D25336068

fbshipit-source-id: 113050215c28a28c820d938348a0a3e54c14c3ee
2020-12-07 08:23:19 -08:00
Thomas Orozco
13255301b0 mononoke/bonsai_globalrev_mapping: add caching
Summary:
Like it says in the title, this adds a caching layer around Globalrevs using
our existing `GetOrFillMultipleFromCacheLayers` abstraction.

Note: I've opted to not track dedicated metrics for this (compare to the hg
mapping to see them), since I don't believe we really ever look at them.

I'd like to do a little bit of refactoring of
`GetOrFillMultipleFromCacheLayers` to a) track them without having to ad-hoc
code it, b) convert it 0.3 futures, and c) require less ceremony to call it.
However, I'll do so in another diff.

Reviewed By: StanislavGlebik

Differential Revision: D25334478

fbshipit-source-id: 1385298b8fdf1cd081b6e509c6c3e03b3abbfa5b
2020-12-07 08:23:19 -08:00
Thomas Orozco
ec0bff0b82 mononoke/bonsai_globalrev_mapping: split out sql module
Summary: This lib.rs is getting too big. Split it.

Reviewed By: StanislavGlebik

Differential Revision: D25333510

fbshipit-source-id: ea15664d2de21a24ee107162e030b7762b1d413e
2020-12-07 08:23:19 -08:00
Thomas Orozco
00c3297c49 mononoke/bonsai_globalrev_mapping: make point queries default impl methods
Summary:
I'd like to add a caching variant for this. Might as well not have to rewrite
those methods on an ad-hoc basis.

Reviewed By: StanislavGlebik

Differential Revision: D25333461

fbshipit-source-id: 632c0307189fe15a926d808c1eeca1e3f240eb19
2020-12-07 08:23:18 -08:00
Thomas Orozco
1ec5537e9e mononoke/bonsai_globalrev_mapping: update to futures 0.3
Summary: Like it says in the title.

Reviewed By: StanislavGlebik

Differential Revision: D25333450

fbshipit-source-id: 49ad4b1964a4dfd9f3e0108fa421d451ef905256
2020-12-07 08:23:18 -08:00