Summary:
If an absolute path is provided, try to convert it to repo path. This provides
a bit convenience for end users.
Reviewed By: quark-zju
Differential Revision: D31960283
fbshipit-source-id: 7d252e6e49471f15ab9d693ca3e7d339a0f68cb0
Summary:
`socket.setblocking` is required by HTTPConnection http client in Mercurial. Commitcloud is using it when using the x2pagentd.
Commitcloud on x2pagentd is gated behind `--config auth_proxy.commitcloud_use_uds=True` which isn't rolled out anywhere right now.
Reviewed By: fanzeyi
Differential Revision: D31860864
fbshipit-source-id: 7b8864bb81afb30aa32a37f6dfe91f5e7806d8ee
Summary:
This makes the command more intuitive to use and prevents surpise (that copy
didn't copy)
Reviewed By: StanislavGlebik
Differential Revision: D31961898
fbshipit-source-id: 1545780f6def3653297512f415feddcfddf83d29
Summary:
We want to allow move some bookmarks without hooks if these conditions are met:
1) The affected commits are public
2) Bookmark doesn't add any new commits to the repo (i.e. it's just a bookmark
move, nothing else)
See T98731740 and D31961821 for motivation
Reviewed By: mitrandir77
Differential Revision: D31961877
fbshipit-source-id: 4966a3bdcf5e598194f54f7d8b10f8b780a25f30
Summary:
We usually had option called "--skip-last-chunk" set, however turned out it's a
dangerous option to use. Normally a streaming changelog has only a single head,
however if we add --skip-last-chunk then there might be multiple heads in the
repo if the skipped chunk contained merge commits.
And this code https://fburl.com/code/0fkgmnaj just uses a "tip" commit to do a
pull right after streaming clone. The problem is that "tip" can be only a
single head out of all the heads we have. And tip can be a commit with a very
low generation number, in that case the subsequent pull would try to pull too
many commits at once.
In order to fix the issue I suggest to add --no-upload-if-less-than-chunks
option. This option wouldn't even try uploading chunks if we have too few of
them. So on the one hand it would allow us to not create too many small chunks,
but on the other it would fix the issues mentioned above.
Note that this option would mean that we would create more chunks than we
otherwise would. For example if --no-upload-if-less-than-chunks is 2, then on
average we would create 2x more chunks.
Reviewed By: Croohand
Differential Revision: D31957177
fbshipit-source-id: 8fa9476e4236d962d5f4f0fae96ce6db996a22dc
Summary:
On Windows, overlay data is never recursively removed, causing it to grow
unbounded. This may be the root cause of slow startup that some users have
reported. Since there is nothing Windows specific about this code, let's enable
it.
Reviewed By: fanzeyi
Differential Revision: D31834657
fbshipit-source-id: 852968cf803119a494f0eb71ba77f392b64437c3
Summary:
As the name implies, it loads an overlay directory and removes it at the same
time. This is done to bypass calling removeOverlayData when recursively
removing a directory as removeOverlayData would check if the directory no
longer has childrens and thus would fail.
Credits for this diff should go to chadaustin.
Reviewed By: genevievehelsel
Differential Revision: D30843607
fbshipit-source-id: 370491e454990ca5c8215501cd7e1d5e85526cce
Summary:
Some users have reported slow startup, this log will allow us to more easily
identify if time is spent initializing the InodeMap.
Reviewed By: genevievehelsel
Differential Revision: D31806744
fbshipit-source-id: f8b3122909058ab8f6859c661ef9615f390966e2
Summary:
We're seeing ever growing memory usage during large checkouts. It
appears to be caused by lz4 compression occupying the main thread enough that we
don't pull data out of edenapi fast enough, so the data from the server starts
queueing in memory.
Let's have multiple threads compressing the responses.
Note this only fixes it for non-scmstore. scmstore needs this same change, but
testing shows it still has a memory leak after this change, so it's hard to tell
if this change is working for scmstore. I'll do a followup diff for that.
Reviewed By: quark-zju
Differential Revision: D31973093
fbshipit-source-id: a6d2474a98b410085ce531db28a116c87d9e210c
Summary:
To avoid any risk of SSLKEYLOGFILE being used to unexpectedly write
files as root, ensure the privhelper does not even link against
OpenSSL.
Reviewed By: fanzeyi
Differential Revision: D31944839
fbshipit-source-id: 3280657a10f4a468ddb63a874d38198bd333e01c
Summary:
Futures can only be waited on once, but this code can potentially try to wait
on it more. If for instance the size future were to fail, the continuation
would never be called, and thus the next call to getSize would obtain an
already moved future.
For now, let's simply use a FutureSplitter to close this bug. In the future,
the readdir code will be rewritten to be more asynchronous and to avoid this.
Reviewed By: genevievehelsel
Differential Revision: D31782917
fbshipit-source-id: 9e78fdec62dbccbc2796722175936d563a20ebcd
Summary:
Ignoring the return value of this method is equivalent to dropping the future
entirely, which isn't what is usually desired. Let's make sure the compiler
helps us in finding these cases as code is converted.
Reviewed By: chadaustin
Differential Revision: D31945362
fbshipit-source-id: dd646365e00d3ebb04ed9b6803c561fc11ff4a14
Summary:
Force `draft() & (rev_to_push % pushrebase_onto)` as missing so they will be
rebased regardless of whether they exist on server.
This is a blocker of rolling out HTTP "commit known" endpoint further,
because that endpoint would report cloud backed up commits as "known"
and skip them during pushrebase so push doesn't work for commits
backed up in cloud.
This would be cleaner if we have a separate API to only trigger "rebase"
without pushing.
Reviewed By: DurhamG
Differential Revision: D31877854
fbshipit-source-id: 7e7017d93d21ab263dae37fee347a9690c324a06
Summary: The warning is pointless and adds noise in Mononoke tests.
Reviewed By: DurhamG
Differential Revision: D31945881
fbshipit-source-id: a7667e5e552f1c924a95e6c50e41eca3f6a4ce42
Summary: Pushing a commit known by the server might cause the commit to not be rebased.
Reviewed By: DurhamG
Differential Revision: D31877856
fbshipit-source-id: c077960fb82b0b484775f6cc4d7425ce9bd93c02
Summary:
This used to be correct when both local and remote list all heads. With
selectivepull, we only ask remote about certain heads, if those heads are
known, that does not mean the common heads are just those, since the server
might have other branches refer to related commits.
Dropping the path allows us to figure out "missing" commits more accurately.
This can be seen from the change in `test-fb-hgext-treemanifest-treeonly.t`.
This change also allows us to reproduce a pushrebase problem in the next diff.
This is a breaking change in case the push does not create new commits while
creating a remote bookmark. Previously the exit code might be 1. Now it's 0,
which seems more desirable since it's not "nothing changed".
Reviewed By: DurhamG
Differential Revision: D31877853
fbshipit-source-id: d03c1d0ffec98b46fbc59ff12ab2015f3c10385c
Summary: `_findcommonheadsold` and its dependency `dagutil` are no longer used. Remove them.
Reviewed By: yancouto
Differential Revision: D31877855
fbshipit-source-id: 278dc979b097b424d79a3908fd12e02a0a4465ed
Summary: This completes the conversion to ImmediateFuture for Prjfs.
Reviewed By: chadaustin
Differential Revision: D31746629
fbshipit-source-id: 2587452da9032514c86f54a16194edbda2cf546d
Summary:
This moves all the conversions to folly::Future one level up. This allow
removing all folly::Future code from PrjfsDispatcherImpl.
Reviewed By: genevievehelsel
Differential Revision: D31746626
fbshipit-source-id: cb9b78c9ea2f09045f4bc921ea820a77b5832ddb
Summary: This simply moves the conversion to folly::Future to the caller.
Reviewed By: genevievehelsel
Differential Revision: D31746632
fbshipit-source-id: e7a5606f6027cde071c3fed5ab1fc51dcfeb1258
Summary: This simply moves the conversion to folly::Future to the caller.
Reviewed By: genevievehelsel
Differential Revision: D31746631
fbshipit-source-id: b9542ed81564d4e9ff255b7cb4a3fe74a6b3046e
Summary: This simply pushes the conversion to the caller.
Reviewed By: genevievehelsel
Differential Revision: D31746635
fbshipit-source-id: d562f139eb6bff910fcc934a0177582d1ae5c479