Summary:
Change the test to test extras instead of branches so it could still work
once `hg branches` gets removed.
Reviewed By: phillco
Differential Revision: D13934439
fbshipit-source-id: 60860936f60e177e12547345cbbd7591b1161a6f
Summary:
Change the test to test extras instead of branches so it could still work
once `hg branches` gets removed.
Reviewed By: phillco
Differential Revision: D13934445
fbshipit-source-id: e15c5b652481fcf95df851cdda8998764a98660c
Summary:
Not sure why it's unstable. But the fetch stat gets printed sometimes. Add it
as an optional line.
Reviewed By: phillco
Differential Revision: D13934444
fbshipit-source-id: 3c39737fe95b1572ffcf672a7d8d431218202402
Summary:
The test was about warning of "heads". We allow multiple heads and have already
disabled some checkheads code paths (ex. D8148016). With commit cloud multiple
heads are a norm and not something that should be warned.
Reviewed By: phillco, singhsrb
Differential Revision: D13934438
fbshipit-source-id: e2e4971e05c5e0ca3ed4a5160c16d90f4f847e5f
Summary:
The test was testing "fast-forward" merge, like:
b
|
a (working copy, run "hg merge b && hg ci -m merge")
It's a no-op without branches. But if "a" and "b" have different branches, the
merge would do something and create a merge commit.
Without named branches, fast-forward merge would always be a no-op. Therefore
remove the test.
Reviewed By: phillco, singhsrb
Differential Revision: D13910539
fbshipit-source-id: 9f5a7817a3ff012d429810da3d54ab2174371bd0
Summary:
This is breaking the tests. It has existed for years, so not sure why
the recent reformatting broke it now.
Reviewed By: quark-zju
Differential Revision: D13976462
fbshipit-source-id: 08f3a9f08ec54449b4554017ea9806f3ee51afcb
Summary:
Those are treated differently in eden or git vs ripgrep's ignore crate.
Tracking issue: https://github.com/BurntSushi/ripgrep/issues/1183
Change the gitignore rule to ignore `{}` patterns to solve the issue.
Reviewed By: sfilipco
Differential Revision: D13924426
fbshipit-source-id: 910bfff159509f2840ddcd4b4351577629228257
Summary: We don't really need to check misses here as neither of request fucnctions return misses after fetching from the server. They raise exception if there are any misses.
Differential Revision: D13908252
fbshipit-source-id: 80b6e4fb79b419b5e6d3b343b3bd46d3f8dc7d3c
Summary: Implemented logic for fetching data from the scmmemcache and the server in pack files format. By default `prefetch` will still use loose files, unless the `remotefilelog.fetchpacks` config flag will be set to true.
Differential Revision: D13905733
fbshipit-source-id: cc559f5bc600067199a91efe6cf44b1bde6bf69b
Summary: New get/set protocols for pack files. Also removed hitcount from `receive` method, because it is not used.
Differential Revision: D13924759
fbshipit-source-id: 1382b6f2bc865a19125f3ccd17a779cd16f08b50
Summary: To add the data fetched from the server to the scmmemcache, we need to know pasths to the packfiles created.
Differential Revision: D13905734
fbshipit-source-id: 7c470b560e32e63e7df4f960be92bc9b6da9de3d
Summary: Moved fetching loose files from the server to the separate function
Reviewed By: DurhamG
Differential Revision: D13855807
fbshipit-source-id: 39821644abcdc7375ba1b9ef9519fd2083eb0a71
Summary: Move scmmemcache set/get commands protocol to the cache wrapper to isolate it from the main logic
Reviewed By: DurhamG
Differential Revision: D13855809
fbshipit-source-id: 95b70f7f9d10d97beff107f9f6e5e4f5a8a307c1
Summary: List of missed files is converted to a set many times. So changing the type to a set.
Differential Revision: D13924760
fbshipit-source-id: 65fe52ff6113724d8f7f7a8d5b3c1501f245eedc
Summary: Move scmmemcache receive logic to the cache wrapper to isolate it from the main prefetch logic
Reviewed By: DurhamG
Differential Revision: D13855808
fbshipit-source-id: d0da84857797e3e155507fcf284b39a146677e54
Summary:
On windows we use zip files to load the mercurial packages, but this
was failing because the edenscm module did not have an __init__.py file. Let's
include that in the build.
Reviewed By: singhsrb
Differential Revision: D13974190
fbshipit-source-id: 90e2cc5256fa08281202e11292e3ddf4cc000c01
Summary:
In some cases we are mounting ntfs in a linux host using ntfs.3g and we
want to prevent it from writing symlinks that can't be read from Windows.
Some background, ntfs.3g supports symlinks, but it produces IntxLNK which cause
problems when mounted into a real Windows machine. We don't support symlinks on
Windows anyway, so we want to just disable this. Unfortunately it's difficult to
detect if we're on a ntfs.3g fuse mount, so instead we're just going to have the
machine set up the repo with this extension enabled.
Differential Revision: D13964546
fbshipit-source-id: 7545538e51be4c986a50161165d7cc2e64280555
Summary: Ensure that Hyper uses HTTP/2, since we'd like to support connection reuse and multiplexing.
Reviewed By: DurhamG
Differential Revision: D13925320
fbshipit-source-id: 0f39e66fe35a0dc95966d16772d1ab8988067c11
Summary: In Rust it is typically more idiomatic to have a static method on a struct to produce a builder, since this means the builder doesn't need to be explicitly imported to construct a new instance of the struct.
Reviewed By: DurhamG
Differential Revision: D13925323
fbshipit-source-id: c06d5d42ba941dbbb2c619f9470e79fa23f35f68
Summary: Rename Mononoke API to Eden API, per war room discussion.
Reviewed By: quark-zju
Differential Revision: D13908195
fbshipit-source-id: 94a2fe93f8a89d0c5e9b6a24939cc4760cfaade0
Summary:
The default value is specified in configitems.py. Remove the `default`
argument.
Reviewed By: phillco
Differential Revision: D13909730
fbshipit-source-id: ca45c63be7d48e04e71a6f5b3b682f625a3030f6
Summary:
This reverts the upstream changeset:
changeset: 66ecde8a704d9fa92bd99720923524c4bd3f315b
user: Boris Feld <boris.feld@octobus.net>
date: Wed, 15 Nov 2017 18:52:42 -0800
summary: server: introduce a 'experimental.single-head-per-branch' option
Named branches are going to be removed. Remove experimental dependent feature.
Reviewed By: phillco
Differential Revision: D13909727
fbshipit-source-id: 3baf101e5a038b58bc01506826b631a2a58a7782
Summary: Named branches are going to be removed. Remove directly related tests.
Reviewed By: phillco
Differential Revision: D13909726
fbshipit-source-id: 6f7f39b4129bb5840a90501ef251b3f5971c82fe
Summary:
Lots of places use it to print some thing like "fetched x files in y seconds (1KB/s)".
In tests, these have to be manually replaced to "* (glob)" patterns.
This diff makes test output static without using globs. So `run-tests.py -i` would just fix things.
Reviewed By: phillco
Differential Revision: D13954456
fbshipit-source-id: d139c7c5e268d3bab562c266335d740986780924
Summary:
We're seeing issues where a file show up as "M" while it isn't expected so. When
running "hg status" again, the file disappeared. Existing logs suggest that
watchman does not think anything has changed between the two "status" commands.
Therefore add more logs of the internals to try to get more insights.
Differential Revision: D13954209
fbshipit-source-id: 0b89a6da5e8702e707440ef2e1823eb4968c10be
Summary:
pushrebase has logic that loops through all the files and builds a list
of what has changed. Unfortunately, Mercurial has some optimizations where if
the manifest isn't loaded already, it tries to only load the manifest delta, and
checks if this might be a good idea by first checking if the file is in the
commit metadata file list. The commit metadata is a list, which makes it a O(n)
scan to check containment. Since we do this for every file, it becomes O(n^2).
To avoid this, let's just make sure the actual manifest is loaded.
Once every repo is a tree repo, we can get rid of the manifest delta
optimization and get rid of the need to prefetch here.
Reviewed By: singhsrb
Differential Revision: D13944829
fbshipit-source-id: c0f33ca650b7956a1f39e961c94678a6f7f380b6
Summary:
During pushrebase there is code that says 'for each file, do some work
that involves listing the changed files'. Because we reparse the list each time,
this becomes n^2 behavior. Let's cache the list to avoid this.
Reviewed By: singhsrb
Differential Revision: D13944830
fbshipit-source-id: 4fd0dbf26b6cee9d0c01879cafb9837262f7afa0
Summary:
As requested by DurhamG, bundle DotSlash in the same way that scmtelemetry
is bundled rather than as directly part of the Mercurial package.
This approach makes it possible for DotSlash to leverage Hg's contbuild
while still being in its own package.
To implement this, I copypasta'd scmtelemetry's setup and modified it
for DotSlash, as appropriate.
Although I tried to port the Windows configuration over in addition to
Mac and Linux, I'm going to disable it for now because I want to limit
how many things I'm going to try to get working on the initial rollout.
Reviewed By: singhsrb
Differential Revision: D13950939
fbshipit-source-id: 5d8393d756e23f1ac228c7315a4b95a36288ac3a
Summary: Extend the option to disable `incoming` to also disable `outgoing`.
Reviewed By: markbt
Differential Revision: D13877971
fbshipit-source-id: c4f994d536dda5db7c0e9f14656be48fc757c237
Summary:
When doing lfs prefetch, pass the filenames that correspond to each oid to lfs
so that it can include them in the progress bar.
Reviewed By: DurhamG
Differential Revision: D13716078
fbshipit-source-id: c91eca6b342996c0c3d1ee43f3b1e98db4ed64d4
Summary:
If the repository was mounted into a different directory than the
source of truth, our watchman integration would not work. To fix this, Mercurial
now applies the same canonicalization logic to the path before passing it to
watchman. This logic is stolen verbatim from watchmans integration test path
utility.
This also requires updating our copy of pywatchman to match the upstream
pywatchman.
Reviewed By: quark-zju
Differential Revision: D13886207
fbshipit-source-id: ea72166edf2eb30f2bee992d9aa936e2e9729e63
Summary:
The Rc is required by the c_api, but there is no longer a reason for
UnionDataStore and UnionHistoryStore to use an Rc, so let's move the Rc into
c_api.
Reviewed By: DurhamG
Differential Revision: D13928332
fbshipit-source-id: a93b54e022d539dc4df9144a8c59e9ffbe3453e0
Summary:
By specifying the IntoIterator differently, we can avoid the clone requirement.
Since Clone isn't implemented on either DataPack or HistoryPack, this will
simplify the callers a bit
Reviewed By: DurhamG
Differential Revision: D13928274
fbshipit-source-id: f0261c50d73868689ebb3ae226f84d41c4c40925
Summary: This way, HistoryStore type constraint will work with these types.
Reviewed By: DurhamG
Differential Revision: D13928128
fbshipit-source-id: aaa9f2633166c137dca5fc2b1f44caab92b57a80
Summary: This way, DataStore type constraint will work with these types.
Reviewed By: DurhamG
Differential Revision: D13928090
fbshipit-source-id: 1567556e3ffea2901acbc754b3bd67491e23056b
Summary: The UnionStore doesn't need internal mutability, so let's simplify it.
Reviewed By: DurhamG
Differential Revision: D13928058
fbshipit-source-id: f0ba085ff8401dcc99fc69c3eb6f5e20c071d650
Summary: In repositories which change quickly, the incoming and outgoing commands aren't useful. Add an option to disable these commands.
Reviewed By: markbt
Differential Revision: D13859604
fbshipit-source-id: c4784b7eafbe3c4a6cf03686f1431204089b0155
Summary:
The simplecache test attempts to connect to a memcache instance on localhost.
This means the test fails if a memcache instance is not available.
Remove the use of memcache in the test. We still test local files, and assume
that memcache itself works.
Also corrupt the correct key when testing corruption handling, and document the
config options.
Reviewed By: quark-zju
Differential Revision: D13818471
fbshipit-source-id: 6ca7f575aa813f95773144be5337796f029ffd90
Summary:
Move all Rust bindings to a single python extension, `bindings`. This should
improve compilation time and make things simpler.
Reviewed By: quark-zju
Differential Revision: D13923866
fbshipit-source-id: 560592b5a6c0c4f1b836c755ef123666a1059164