Summary:
See [#727](https://github.com/facebook/sapling/issues/727)
We want to be able to navigate through long lists of changes.
Sometimes, we have the full list available and we just need to paginate it. (uncommitted changes is like this)
Sometimes, we don't have the full list on the client, and so we want the banner but no pagination buttons. (committed changed files list is like this)
We can detect this by comparing if totalFiles and filesSubset.length are equal. This gets around us needing to pass in more complicated `pageNum`+`nextPage` props from the parent—we can handle it in the child.
Reviewed By: quark-zju
Differential Revision: D49465010
fbshipit-source-id: 8ba3861b55ecb0deb38b9f28af5dbdf4fc80809c
Summary: As in other services, this diff adds support for `ClientRequestInfo` in `LFS`. In particular, it parses the relevant headers and embeds it into the `ScubaBuilder` and `CoreContext` for logging and for passing downstream
Reviewed By: liubov-dmitrieva
Differential Revision: D49440588
fbshipit-source-id: f5dcb79778ab24c2056a92066bde3237ccfb73f2
Summary: Add support for `ClientRequestInfo` in `MultiplexBlobstore` so we will have user identifying information in `blobstore_multiplex_trace` (for `MultiplexBlobstore`) and in `mononoke_blobstore_trace` (for `Manifold`, `XDB` and other physical blobstores).
Reviewed By: zzl0
Differential Revision: D49436554
fbshipit-source-id: 35c5b4a2d77f02c137684fdf155f26e30dc51a06
Summary:
always read ClientInfo from http headers regardless if trusted or
not trusted
the ClientInfo logging to scuba is already in place, and also passing it
further to land service, etc
Reviewed By: RajivTS
Differential Revision: D49439063
fbshipit-source-id: ce0080e9c3f3db34123d8a9c594d37e209ad1a31
Summary:
Report "blocked" intervals to Rust.
Pager, fout/ferr writes are handled by Rust IO so we no longer track those explicitly
from Python.
Reviewed By: muirdm
Differential Revision: D49442475
fbshipit-source-id: e8a77226aae7a45bb4d77774fbec1cf533df47cd
Summary:
The makes code paths using the "main" IO use the "latest" instance.
Note: pyio uses the "main" IO under the hood so this might not matter that
much. But this change makes the intention clear.
Reviewed By: muirdm
Differential Revision: D49442473
fbshipit-source-id: 61a084fdd7235054545c5402a0c900f20a3c5107
Summary:
This would be used by telemetry. I simplified the "Run Command" tracing span as
spans are too noisy when show up in tracing logs (using the default formatter).
Reviewed By: muirdm
Differential Revision: D49442476
fbshipit-source-id: 978c8bff14aca0224c0b61c99e2c6c14f5ea318f
Summary: To support non-IO blocked events like ui.system and others.
Reviewed By: muirdm
Differential Revision: D49442474
fbshipit-source-id: 56c9b3a370e464222b43d1d69f12a2fc895c1606
Summary: Use the `time-interval` to track stdio and pager blocking intervals.
Reviewed By: muirdm
Differential Revision: D49432707
fbshipit-source-id: ea1908ad8990d2a288ca634dca963d93b66c09e6
Summary:
Intended to replace Python's "blocked" time tracking, with an improvement that
handles overlapped intervals properly.
The interval logic comes from a subset of dag's SpanSet features.
Reviewed By: muirdm
Differential Revision: D49429639
fbshipit-source-id: 6ee818bdfdc576408fc9604b7491dde7f6dfd6ae
Summary: This diff adds support for logging and capturing `ClientRequestInfo` in scuba for `DerivedDataService`
Reviewed By: liubov-dmitrieva
Differential Revision: D49426476
fbshipit-source-id: 1edea0269f840aae225a1e7b0006397f2c9f0df9
Summary: As in title, include `ClientRequestInfo` in `Metadata` since that is the central structure used when parsing request headers in both thrift and HTTP services. I will use this in `DerivedDataService` later.
Reviewed By: liubov-dmitrieva
Differential Revision: D49398202
fbshipit-source-id: ad787840e511859f7e3617bc4d56523c4fa52b54
Summary:
log to scuba all the metadata
ClientRequestInfo is coming as part of the metadata, so it makes sense to call
a generic method that logs everything.
Read Client Info into the metadata
Reviewed By: RajivTS
Differential Revision: D49426464
fbshipit-source-id: 7743daacdf180fe83c56ef66c703cafa05c77392
Summary: The indexedlog backend does not require "repack" to maintain performance.
Reviewed By: muirdm
Differential Revision: D49399645
fbshipit-source-id: 3c84bfe12f7aa7806719478053afd2382e37c466
Summary:
Trying to help with this problem:
hg --version
Traceback (most recent call last):
File "/opt/fb/mercurial/edenscm/__init__.py", line 81, in run
from . import dispatch
File "/opt/fb/mercurial/edenscm/dispatch.py", line 27, in <module>
from . import (
File "/opt/fb/mercurial/edenscm/cmdutil.py", line 29, in <module>
from . import (
File "/opt/fb/mercurial/edenscm/bookmarks.py", line 21, in <module>
from . import (
File "/opt/fb/mercurial/edenscm/encoding.py", line 20, in <module>
from edenscmnative import parsers as charencode
ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 3.10.9+fb, but Mercurial is currently using Python with sys.hexversion=50857712: Python 3.8.6 (default, Feb 10 2023, 17:15:29)
[GCC 11.x 20221024 (Facebook) 11.2.1+]
Reviewed By: muirdm
Differential Revision: D49067540
fbshipit-source-id: 3aa673021b706c659bd2676bc448e3ae1edd6f42
Summary: Adding metrics to enable a full picture of EdenFS cache hits top to bottom. In this case, adding cache hits (success) to LocalStore. This will be paired with existing cache misses (failure). We also add errors (exceptions) to the reporting.
Reviewed By: clara-9
Differential Revision: D49396438
fbshipit-source-id: e28bd8e2785c48f9e9acce5761b01aaeb47da59c
Summary: on Sandcastle, we can't use either APFS or DMG because they leave behind state that is difficult to correctly and safely clean up (see: S325232 and S362020). For integration tests on Sandcastle, lets use symlinks to mitigate these issues
Reviewed By: mshroyer, jdelliot
Differential Revision: D49335879
fbshipit-source-id: 30267b8c77899cc0942334448966c1fc15c3bba2
Summary:
Drop legacy config logging. `sqldirstate` is no longer a thing so it gets
removed from extorder.
Reviewed By: zzl0
Differential Revision: D49399077
fbshipit-source-id: b5608cd70059e990aced5cb760ac6a0ab0dd2542
Summary: This diff allows the packer binary to log the packing key into the tuning log, so that we can do deduplications later.
Reviewed By: YousefSalama
Differential Revision: D49411890
fbshipit-source-id: 44dd3791750c55f216ed8585bd5c7e13dc9ed2b7
Summary: ClientRequestInfo holds information that will be used for tracing the request through Source Control systems. We will use it in the following diffs.
Reviewed By: RajivTS, liubov-dmitrieva
Differential Revision: D49395556
fbshipit-source-id: 970f8f5aaa583a6249f7c49d68921378f149877d
Summary: When you open the submit confirmation modal, start with the submit button focused so you can just press Enter to confirm, if you know you don't need to double check anything or change the draft mode.
Reviewed By: quark-zju
Differential Revision: D49376910
fbshipit-source-id: 47e7e7daa8bf31a6b9cd60a33f3c484a9956e5fb
Summary:
On D49067540 EdenFS will be upgraded to Python 3.10. This introduces some issues with reading symlinks since those are now created with UNC path prefixes (e.g., `\\?\C:\foo\bar`). Without this change, EdenFS integration tests for redirect break on D49067540.
All users will have UNC-less symlinks before D49067540, so it's better to just change the symlinks comparison in the CLI to ignore the prefixes.
Reviewed By: mshroyer
Differential Revision: D49358416
fbshipit-source-id: 0de9175b3e9d3f8c89762bcf6a347dda2d714461
Summary:
The command mentioned in the title should allow users to convert repos which don't have symlinks enabled on Windows to repos that have them enabled.
This command only works on non-EdenFS repos.
Reviewed By: muirdm
Differential Revision: D48890621
fbshipit-source-id: 63f7fc7c0d66fa9b24be694416511a88a0931b37
Summary: To eliminate the homebrew problem, the directory to `opt/homebrew` should be removed from the packaging RPM spec.
Reviewed By: quark-zju
Differential Revision: D49276024
fbshipit-source-id: febb26dc484b7384e6a7914af37ebb6331b24ac9
Summary:
This makes it easier to get git raw data "touched" by specified commits.
The data can be interesting as example input of a "objects <-> Git bundle" library.
Reviewed By: muirdm
Differential Revision: D49342720
fbshipit-source-id: fd1071c3768bf9af0a1f49bf1602ea94c9648580
Summary: This diff uses logger to log info, instead of using println. So that, we'll have a more consisten way of the packing progress.
Reviewed By: mzr
Differential Revision: D49374726
fbshipit-source-id: 217e32ec8f5f9362776d688a29e60266c858fc8d
Summary: This diff uses logger to log info, instead of using println. So that, we'll have a more consisten way of printing info.
Reviewed By: mzr
Differential Revision: D49374060
fbshipit-source-id: 8486d6ba634f90857b01a3c805403b03c05705f4
Summary: I want to import these into our Hack server side code so I can write Hack functions to prefetch files. Adding a Hack namespace allows me to do that without hitting classname conflicts.
Reviewed By: kmancini
Differential Revision: D49322120
fbshipit-source-id: 333e27d245c88b17bd3645cb2103ec3e6ba1f63e
Summary:
Like previous diff, but add it when you have multiple commits selected.
This is slightly hairy, because we try to save your edited messages, and yet the keying is by hash. So if you change your selection at all (or a succession happens), you'd lose your message.
I really don't think it should be a big deal—these update messages are supposed to be brief and simply explain what you changed, unlike the summary/ test plan.
Reviewed By: quark-zju
Differential Revision: D49339371
fbshipit-source-id: 47113d097e5e672e85f61365aadd23b8cd7272ae
Summary:
We now support an update message field when you bulk submit your stack, but we should also let you do this in the commit info view.
I don't love that we need to take up an additional line of space for this, it kind of gets in the way. But I think it's better to have this feature than not.
Reviewed By: sggutier
Differential Revision: D49338613
fbshipit-source-id: cbc26a3366d2419dda1380eb11b0cc18cf2fa578
Summary: we'll need to disable this for github, since I think sl pr / sl ghstack don't have a way to add a comment when submitting.
Reviewed By: sggutier
Differential Revision: D49336279
fbshipit-source-id: 3714f4de61264f6e84b601bd46ec7e1139e13bd1
Summary: Add a text field where you can write out an update message to pass to the submit command.
Reviewed By: quark-zju
Differential Revision: D49335831
fbshipit-source-id: c5357824b7f74b87ce49863603608d4b1d4c7448
Summary: These tests broke during this stack. Let's reenable by mocking the config to confirm, and also add some tests for the confirmation modal itself.
Reviewed By: quark-zju
Differential Revision: D49334877
fbshipit-source-id: 6737db02e6a04db57a21ae54d6e852b90ab1f9e1
Summary:
If we use a hook for the submit stack confirmation modal, we can use a recoil callback to get all the state we need.
We actually had a bug before, where if you disable the confirmation modal, the submit button would have no effect, since now it returns null. We actually need it to return the same information by looking up recoil state for the draft checkbox.
Reviewed By: quark-zju
Differential Revision: D49333423
fbshipit-source-id: 3a398667ed986eb2ba5122574c1dd22179727606
Summary: Previously, we returned a boolean here to signal that we should submit. We could lookup the draft checkbox state from the atom, but it's simpler to just pass this back from the modal. Plus, we'll need to pass data back to support the update message field.
Reviewed By: quark-zju
Differential Revision: D49330145
fbshipit-source-id: 77422c96f7f5709ffea8f97757b374982f827c28
Summary:
Update the settings dropdown to include the stack submit confirmation.
This mirrors the "don't show again" in the confirmation modal.
Of course, we need this to be accessible outside the modal because once you check it and close the modal, you won't see the modal again!
Also, we have a few settings now for code review, let's lump them together so it's easier to read and we don't take as much space.
Reviewed By: quark-zju
Differential Revision: D49330148
fbshipit-source-id: f907f8c7e3c1d59cb76bb223851b784bace93c58
Summary:
Actually store the config state for whether you want to see the stack submit confirmation modal.
We do this with our normal persist effect.
I was a little back and forth on whether this should be the positive "show confirmation" or the negative "don't show confirmation". I opted for the setting to be positive, but show the negative in the modal. Somehow that makes more sense to me.
Reviewed By: quark-zju
Differential Revision: D49330149
fbshipit-source-id: 7601aa3b979a460ffd80704dbb8010197690bbe3
Summary:
Add an interstitial modal which lets you choose if you want to submit as a draft or provide an update message.
We also let you choose not to show this message.
Reviewed By: quark-zju
Differential Revision: D49330147
fbshipit-source-id: bdd728ba3f0c853ac61ab415166adad3c9a12e66