Commit Graph

8039 Commits

Author SHA1 Message Date
Muir Manders
26186f37c7 tests: add default gitignore file
Summary: And ignore *.profraw files. There are a bunch of tests failing when run w/ test coverage profiling due to these droppings.

Reviewed By: quark-zju

Differential Revision: D43986480

fbshipit-source-id: 481f88e68c09c6ed3b2903d54f03431c4a04e1c2
2023-03-10 15:57:03 -08:00
generatedunixname89002005307016
7c9dfd7fbc Add annotations to eden/scm/ghstack/logs.py
Reviewed By: muirdm, quark-zju

Differential Revision: D43943656

fbshipit-source-id: 61cbb662e5d60a7d4c4e7e85ff7035b6ccca7305
2023-03-10 15:27:06 -08:00
generatedunixname89002005307016
7566b650d5 Add annotations to eden/scm/edenscm/ext/progressfile.py
Reviewed By: muirdm, quark-zju

Differential Revision: D43813730

fbshipit-source-id: 3117ad1465e0e101f366d46464701c6d39450c0d
2023-03-10 15:19:23 -08:00
generatedunixname89002005307016
8961e854e2 Add annotations to eden/scm/edenscm/i18n.py
Reviewed By: muirdm

Differential Revision: D43657007

fbshipit-source-id: e4ae609752066afddb72a8f6c88cbe67be151eb6
2023-03-10 15:13:32 -08:00
Katie Mancini
260c64e8a7 unbreak mac eden tests allow Bytes and String in c-python code
Summary:
previously the eden tests on my M1 were crashing with this err:

```
HgError: Command [/usr/local/bin/hg --traceback commit -m test foo/new.txt] failed with status -6
stderr:
  Assertion failed: (PyBytes_Check(str_obj)), function _asciitransform, file eden/scm/edenscm/cext/charencode.c, line 181.
```

after debugging this seems to come from the filefoldmap code path:
https://www.internalfb.com/code/fbsource/[6f287df44cebb45baecc1920c86a9aade0a537b6]/fbcode/eden/scm/edenscm/dirstate.py?lines=1599

The issue is that the keys of the dirstate are str objects where the c code in
_asciitransform expects them to be bytes.

notably intel does not seem to trip over this assertion, so the assertion only
seems to happen on arm.

not sure why the assertion only happens there. but anyways ...

We cannot transform the string to bytes in python, because we are not able to
iterate the map in python: https://www.internalfb.com/code/fbsource/[6f287df44ceb]/fbcode/eden/scm/edenscm/eden_dirstate.py?lines=53-70

So we need to make this c function support strings (or at least something in the
c layer support strings).

That's what we are doing here.

We probably could get rid of the support for bytes in this function because ...

There are multiple code paths that call into this function with bytes. There's
this one: https://www.internalfb.com/code/fbsource/[6f287df44cebb45baecc1920c86a9aade0a537b6]/fbcode/eden/scm/edenscm/posix.py?lines=661

but that is doing a conversion from bytes to string right before calling.

and these ones that are dead code paths: https://www.internalfb.com/code/fbsource/[6f287df44cebb45baecc1920c86a9aade0a537b6]/fbcode/eden/scm/edenscm/encoding.py?lines=278%2C300

The first could use string and the second can probably be deleted since we are
on python 3 now: https://www.internalfb.com/code/fbsource/[6f287df44cebb45baecc1920c86a9aade0a537b6]/fbcode/eden/scm/edenscm/encoding.py?lines=489%2C509%2C512%2C516-518

I'll leave it up to the mercurial folks if you want to pursue that option.

Muir and I also looked to see if we could delete the c code altogether, but
that's a bit complicated because python can't iterate an eden dir state, and
this code implicitly uses the c code to iterate the dir state for the python
code. So the python needs to grow the ability to iterate the dirstate, or
larger chunks of this code need to be refactored, I think.

For now I am making the minimal change to get the eden tests running on mac.

Reviewed By: quark-zju, xavierd

Differential Revision: D43962468

fbshipit-source-id: 6145aae4b812f21b7561515544fd7aef956f4e0b
2023-03-10 13:17:34 -08:00
Muir Manders
93c5c35ed9 workingcopy: add more matcher tests for watchman status
Summary:
Add tests to make sure we mark files NEED_CHECK properly even if the given matcher doesn't match the files. Although we try to limit work based on the matcher, we need to at least record NEED_CHECK for files reported by watchman since we will update the watchman clock in the treestate (and won't get notified about the non-matching file next time).

Note that this isn't right for ignored files which should not be tracked in the treestate by default. Will address in following diffs.

Reviewed By: quark-zju

Differential Revision: D43760941

fbshipit-source-id: f445f9576323b730e72d9df1acce2a26b8a3ef50
2023-03-10 10:25:44 -08:00
Muir Manders
361c3de27c status: add status_detail for morestatus fallback
Summary: Fill in status_detail when the native status falls back to Python due to needing the morestatus extension.

Reviewed By: quark-zju

Differential Revision: D43626599

fbshipit-source-id: 4d4826a9a178557a7a4f649eb9ec7817bf707151
2023-03-10 10:25:44 -08:00
Muir Manders
2de7187785 status: parallelize file metadata/content comparison
Summary: Add a parallelized FileChangeDetectorTrait impl. It is enabled by default but can be disabled by setting workingcopy.watchman-worker-count=0.

Reviewed By: quark-zju

Differential Revision: D43626598

fbshipit-source-id: b250b5dfa5552b5ee52b993731a09842cc0639f6
2023-03-10 10:25:44 -08:00
Muir Manders
c2ffc8fedf workingcopy: make FileChangeDetectorTrait parallel friendly
Summary:
I want to parallelize the work this object does, but the trait interface is serial (and synchronous):

```
pub trait FileChangeDetectorTrait {
    // Check if file size and mtime are unchanged (otherwise queue "maybe changed" result).
    fn has_changed(&mut self, ts: &mut TreeState, path: &RepoPath) -> Result<FileChangeResult>;

    // Resolve "maybe changed" files by checking contents.
    fn resolve_maybes(&self) -> Box<dyn Iterator<Item = Result<ResolvedFileChangeResult>> + Send>;
}
```

It also was a bit annoying to use because it reported results w/ two different types, so the client needed duplicate handling. The new trait allows for asynchronous processing and only returns a single kind of result:

```
// Converting to an iterator signals you are done submitting paths.
pub trait FileChangeDetectorTrait: IntoIterator<Item = Result<ResolvedFileChangeResult>> {
    fn submit(&mut self, ts: &mut TreeState, path: &RepoPath);
}
```

I converted the existing concrete implementation to the new trait. It requires the object to buffer more results, but not any file data, so it shouldn't have much of an impact memory wise.

Reviewed By: quark-zju

Differential Revision: D43626597

fbshipit-source-id: 4ffcd9b870ee8a4fba94aa3972cc4e1a299ebec5
2023-03-10 10:25:44 -08:00
Muir Manders
50e95e2756 workingcopy: pull logic out of FileChangeDetector
Summary: I want to share this logic w/ a different file detector architecture, so pull it out and consolidate into a single free function. This has one concrete advantage of avoiding a duplicate treestate lookup for every file. This may not be the final form, but it's easiest for me right now.

Reviewed By: quark-zju

Differential Revision: D43626600

fbshipit-source-id: 6ee4355110fc76f2542bf78d8be348e894e73cbd
2023-03-10 10:25:44 -08:00
Muir Manders
ed85fe74d7 status: add progress bars for watchman processing
Summary: Add progress bars for work we do processing the watchman (and treestate NEED_CHECK) results.

Reviewed By: quark-zju

Differential Revision: D43626601

fbshipit-source-id: f7e56543955b12a7d89ff9073fa13d2265ba948f
2023-03-10 10:25:44 -08:00
Zhaolong Zhu
0b3880c566 storemodel: add doc for 'TreeStore.get' method
Summary: I thought the `get` method would return the contents of a file path as well, which is not the case. So I added a doc to that function to make the assumption explicit.

Reviewed By: quark-zju

Differential Revision: D43919690

fbshipit-source-id: 10b499e16f1910ee3ac24ef34a95f18e123a95c0
2023-03-10 06:22:34 -08:00
Muir Manders
f425cf9998 histedit: avoid pointless merge for "fold"/"roll"
Summary: The fold action collapsed commits up to and including the working copy, but it left the working copy dirty. When it subsequently updated to the new collapsed commit, it "merged" all the files. They merge cleanly since their contents are identical, but we still invoke the merge drivers (why are we invoking merge drivers if the contents are identical?). Fix by using ctx.markcommitted() which updates the dirstate based on what was committed. And, we no longer need to do the "hg.update()" anymore since the working copy will already be on the collapsed commit.

Reviewed By: quark-zju, zzl0

Differential Revision: D43718659

fbshipit-source-id: 26865cca11feb600e21933c60ed83796212da954
2023-03-08 15:21:58 -08:00
Xavier Deguillard
990a7c50a7 Back out "Expose seeded_blake3 hash for file data through trees and files endpoint"
Summary:
This broke EdenFS.

Original commit changeset: 398049410801

Original Phabricator Diff: D43504459

Reviewed By: fanzeyi

Differential Revision: D43918233

fbshipit-source-id: 4598bbc8f981b95aac3bce8a387c4df4dd6c73c9
2023-03-08 14:50:25 -08:00
Jun Wu
835df38705 eagerepo: avoid nullid in manifest when creating files
Summary:
`nullid` in manifest is invalid (upstream `hg verify` will complain).
The eagerepo `filelog.cmp(nullid, b"")` returns `False` (same content),
which makes `repo.commitctx` think that the file hasn't changed and reuses the
`nullid` in manifest incorrectly.

The original `filelog.cmp(nullid,b"")` would return `True` (different content)
since it calculates the real hash and nullid does not match the real hash of
empty content.

Reviewed By: zzl0

Differential Revision: D43920391

fbshipit-source-id: 7573647440a636ff92c42192a1cf2085c892e4dd
2023-03-08 14:14:25 -08:00
Rajiv Sharma
0664733b44 Expose seeded_blake3 hash for file data through trees and files endpoint
Summary: The `ContentMetadataV2` provides the seeded blake3 hash for each created file. This information needs to be passed to `buck` which interacts with `EdenAPI` through `EdenFS`. The relevant endpoints in `EdenAPI` are `trees` and `files` which are modified in this diff to support the new hash.

Reviewed By: markbt

Differential Revision: D43504459

fbshipit-source-id: 3980494108014d687529b77791012a3b57e84903
2023-03-08 04:53:38 -08:00
Jun Wu
a2f185cca6 debugexportstack: command to export information of a stack
Summary:
This is intended to be used for ISLv2 stack editing. The command exports
related file contents.

Reviewed By: muirdm

Differential Revision: D43773252

fbshipit-source-id: c8a58c090474efb0e0a79759efc3c7c45e2a97c1
2023-03-07 14:42:13 -08:00
Saul Gutierrez
fd59a83495 make error message with gpg more informative
Summary:
As an [user pointed out in #544](https://github.com/facebook/sapling/issues/544), `sl` crashes when `gpg` returns an error code instead of returning a slightly more useful error message.

This diff also changes the gpg flags so that it doesn't error out due to lack of user input. Previously it would return an error 2 when it waited for user input.

Reviewed By: zzl0

Differential Revision: D43860003

fbshipit-source-id: ecfcb6f8cabb736365ea407211437c52f878f0c8
2023-03-07 13:38:13 -08:00
Shyam Sunkari
75bb37ca25 delete references to b85decode/b85decode
Summary: Using python native base85 encode/decode by removing old implemented reference.

Reviewed By: sggutier

Differential Revision: D43700467

fbshipit-source-id: 8bc223bd9cb0054c0f227557bea719d6f6f91165
2023-03-07 09:57:27 -08:00
Zhaolong Zhu
922f62da53 copytrace: implement RenameTracer API
Summary: This diff is a basic implementation of `RenameTracer` to pass the unit test added in a previous diff.

Reviewed By: quark-zju

Differential Revision: D43724672

fbshipit-source-id: 1c9bb48064371f97440b7453bb708b7c494f399c
2023-03-06 18:09:02 -08:00
Zhaolong Zhu
27c880b85c pathhistory: check 'missing_ids' instead of 'ids'
Summary: The for-loop is only iterating the `missing_ids`, so we just need to check if `missing_ids`

Reviewed By: quark-zju

Differential Revision: D43735124

fbshipit-source-id: 557a083854899357f332b38b018fad8a973d70c5
2023-03-06 18:09:02 -08:00
Zhaolong Zhu
6e02916535 copytrace: add simple unit test for RenameTracer API
Summary: Add a simple unit test to show how the API will be used and guide the API implementation.

Reviewed By: quark-zju

Differential Revision: D43724673

fbshipit-source-id: 6b5f126b356d7d320040b7e2d5bc61508cf064e7
2023-03-06 18:09:02 -08:00
Muir Manders
810487e4eb undo: catch another type of revlog error
Summary: In this case, the revlog could be opened, but crashed when trying to add something. Let's catch that error and nuke the undo revlogs.

Reviewed By: evangrayk, zzl0

Differential Revision: D43704364

fbshipit-source-id: 50ba67fa17b4a31676efe9b9925bdb1ff5c574ba
2023-03-06 16:58:09 -08:00
Jun Wu
1238c625ba drawdag: support binary content
Summary:
Support binary content by prefixing `base85:`.
This makes it easier to produce non-utf-8 content for testing purpose.

Reviewed By: muirdm

Differential Revision: D43773249

fbshipit-source-id: a83706038bcc4865412b694966cfcb4d69c823f9
2023-03-06 10:23:37 -08:00
Jun Wu
9f36d40a7b localrepo: expose tonodes in dageval
Summary: This makes the API a bit easier to use.

Reviewed By: muirdm

Differential Revision: D43773251

fbshipit-source-id: 0a6cfb1d4d8812dfda50237d0fca508a0e24a6b8
2023-03-06 10:23:37 -08:00
Zhaolong Zhu
384f91fe66 pathhistory: fix a typo (Split -> Skip)
Summary: as title

Reviewed By: quark-zju

Differential Revision: D43724674

fbshipit-source-id: d1c09dd90476386f986c44a23f6957ea44226af4
2023-03-03 13:10:04 -08:00
generatedunixname89002005307016
f22332f3fe Add annotations to eden/scm/edenscm/tracing.py
Reviewed By: zzl0

Differential Revision: D43768569

fbshipit-source-id: b54f50c1b0e6f97a02954249c7ad6d30eb1613ba
2023-03-03 13:07:30 -08:00
Muir Manders
c25eab9a68 ui: don't default username to <user>@<fqdn>
Summary: If the user hasn't configured their ui.username, I would rather the command error out instead of using <user>@<fqdn>. On Windows in particular, this default gives a very wrong user name that gets immortalized in the commit cloud workspace. It's much less toil for the user to configure the username early.

Reviewed By: quark-zju

Differential Revision: D43668690

fbshipit-source-id: 64c4e0d235b2fe2fa80c76da6e04917573989a9b
2023-03-02 22:10:45 -08:00
Muir Manders
49ee17f2bf pfc: restart server if groups have changed
Summary:
We've had reports of users getting "cached" permission errors because the pfc/chg server process has a out-of-date list of groups cached.

Linux seems to cache groups for the lifetime of the process, but MacOS seems to update them dynamically. This check shouldn't hurt on MacOS, though.

Reviewed By: sggutier

Differential Revision: D43676809

fbshipit-source-id: 7e4439465410567d83ceeaa4ad58bd332a03a4f7
2023-03-02 18:50:04 -08:00
Muir Manders
e26e09399d tests: fix a couple tests that fail w/ new Git version
Summary:
- Suppress new output from "git bisect" in test-fb-ext-scm-prompt-git.t
- Defeat CVE-2022-39253 security precaution in test-git-submodule-loop.t by configuring protocol.file.allow.

Reviewed By: quark-zju, sggutier

Differential Revision: D43752573

fbshipit-source-id: 2078f2f7e41e29bf59806e8a6a1d8c764dd5e5ae
2023-03-02 16:52:30 -08:00
Saul Gutierrez
8d5b35b873 symlinks: remove support for cygwin
Summary:
Some time ago we started shipping Python alongside our Windows build, which means that we haven't really supported Cygwin for some time. Thus, we can remove bits of code associated with Cygwin.

The removed lines of code would never really be executed since `sys.platform` (which is what `pycompat.sysplatform` uses) always evaluates to `windows` with the Python build we ship along the Windows build. The value of `sys.platform` is determined when building the Python binary.

Reviewed By: quark-zju

Differential Revision: D43456960

fbshipit-source-id: 659eb8750602fb42f2325b7f16c5497c83ec5d32
2023-03-02 13:14:36 -08:00
Muir Manders
b48f524832 fix some compilation warnings
Summary:
- Fix a couple deprecation warnings related to chrono upgrade.
- Kill some unused fields.

Reviewed By: zzl0

Differential Revision: D43713142

fbshipit-source-id: ff04860b02b5dc881f39b0587ef9eb47f96015a2
2023-03-02 13:08:50 -08:00
generatedunixname89002005307016
22354fff97 Lint failure adding annotations to eden/scm/edenscm/ext/snapshot/metalog.py
Reviewed By: quark-zju

Differential Revision: D43694465

fbshipit-source-id: d915ff6a518be1ec851562a51e128db16c42a3a9
2023-03-02 10:37:53 -08:00
Jun Wu
1aa1135c88 clone: disable http commitgraph during revlog clone
Summary:
The revlog clone code path is incompatible with the commitgraph endpoints.
Disable the commitgraph endpoint during revlog clone to fix it.

Reviewed By: muirdm, singhsrb

Differential Revision: D43737424

fbshipit-source-id: 6f1b39faa42fd0e760c5f21682f64bb34a7a417e
2023-03-02 08:52:49 -08:00
Liubov Dmitrieva
7a7e8c0d57 skip logging of bad requests for health checks
Summary:
skip logging as "bad" requests for health checks

health checks are currently implemented like simple connections to the port:

```
def _test_service_is_running(ui):
    port = ui.configint("commitcloud", "scm_daemon_tcp_port")
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    if s.connect_ex(("127.0.0.1", port)):
        _warn_service_not_running(ui)
    s.close()
```

so, skipping errors coming from json parsing for those type of checks

todo: implement a proper health_check request which can be part of migration to
json rpc

Reviewed By: quark-zju

Differential Revision: D43693235

fbshipit-source-id: 689cd3368c665fefd61a86d1125dc8d2aba1354d
2023-03-02 00:11:20 -08:00
Liubov Dmitrieva
d0f57e2736 remove unused param
Summary: remove unused param

Reviewed By: quark-zju

Differential Revision: D43693892

fbshipit-source-id: 1dc81af183143fb36b8b5abbdbc4008d51f89a2a
2023-03-02 00:11:10 -08:00
Jun Wu
9d091e0692 github: do not show "marked 0 commits as landed"
Summary: It's pointless and noisy.

Reviewed By: zzl0

Differential Revision: D43704688

fbshipit-source-id: 65b79192de24b4596932c66ec0185e20986cdcf1
2023-03-01 20:06:45 -08:00
Jun Wu
40d0630562 runtests: do not show # ignored not retesting
Summary: A more correct version of D33745363 (d4d662b828). This makes the hgbuild output easier to look at.

Reviewed By: zzl0

Differential Revision: D43703395

fbshipit-source-id: d72180db85da51f34e0a48843e22237797146c98
2023-03-01 20:06:45 -08:00
Muir Manders
001508c294 tests: fix test-parse-date.t
Summary: This test started failing after recent Rust "chrono" crate update in D43683906 (69c6d10d30). Chrono now caches the TZ variable on unix, which defeats the test's attempt to change TZ. (The debugruntest test runner runs "hg" commands in-process for speed.) Add a "sleep 1", which is the threshold chrono uses to check for an updated TZ value. Note that the "sleep 1" is still much faster overall than the alternative of disabling the in-process hg execution.

Reviewed By: zertosh

Differential Revision: D43713144

fbshipit-source-id: 7ccedcf75db6b1b1d45dd526ee9018569e8e31f3
2023-03-01 15:41:23 -08:00
Andres Suarez
69c6d10d30 Update to chrono-0.4.23
Summary:
This update is needed in order to update to routinator-0.12.1
(D43638969).

Deprecated methods have an `_opt` alternative. Before these panicked on
invalid values. Now they return `None` and the panic is made explicit
with `unwrap`. This diff fixes most deprecations, but not those that
require type changes.

https://github.com/chronotope/chrono/releases/tag/v0.4.23

Reviewed By: d16r

Differential Revision: D43683906

fbshipit-source-id: 07a101a148e013d98286e85d5821588a403f5e5d
2023-03-01 05:04:16 -08:00
Muir Manders
3ea230861e status: detect deleted files after watchman restart
Summary: The Rust status wasn't detecting files deleted while watchman wasn't running. On the following "sl status", Watchman reports "fresh instance" and gives a list of all the files on disk. We now infer deleted files by comparing the treestate and the list of files that still exist.

Reviewed By: quark-zju

Differential Revision: D43501745

fbshipit-source-id: 790ab8073e88b368e68c981afa8ca03a710d32ff
2023-02-28 16:44:15 -08:00
Muir Manders
0277b1e1b8 status: add failing test for watchman fresh instance bug
Summary: Add test demonstrating the native status failing to detect a file deleted while watchman isn't running.

Reviewed By: quark-zju

Differential Revision: D43501744

fbshipit-source-id: 717f212b58aca6c4d2f1bba2979cb1ee4f2919aa
2023-02-28 16:44:15 -08:00
Muir Manders
d6d38a4d18 workingcopy: add new watchmanfs unit tests
Summary:
These tests stub out watchman and the filesystem and test NEED_CHECK bookkeeping and propagation of pending changedness.

Next I will expand the tests to cover the "fresh instance" case, which has some differences.

Reviewed By: quark-zju

Differential Revision: D43501752

fbshipit-source-id: 60031122d2ad7f4d76f4c478fbe9d426e425ec3b
2023-02-28 16:44:15 -08:00
Muir Manders
a1cef39240 workingcopy: simplify watchman clock propagation
Summary: Handle clock update in the outer method so we don't have to pass it around so many places.

Reviewed By: quark-zju, zzl0

Differential Revision: D43501747

fbshipit-source-id: 5e1dc7e08b1bb9d1fc4f91a23c4bd6c01ddb902a
2023-02-28 16:44:15 -08:00
Muir Manders
b02faa5be3 workingcopy: get rid of treestate abstraction
Summary: These traits were previously used to abstract the treetate in tests, but the treestate is easy enough to work with. I think it's much simpler overall to use the concrete TreeState in code and tests (more tests to follow).

Reviewed By: zzl0

Differential Revision: D43501754

fbshipit-source-id: 6b106d0d814afbaba14b58e5f2f2fd23c519eeb6
2023-02-28 16:44:15 -08:00
Muir Manders
153d42fe7e workingcopy: reduce usage of Arc<Mutex<TreeState>>
Summary:
There isn't any parallelism, so this type doesn't make sense conceptually. It is used for convenience so various helper structs can hold a mutable TreeState without dealing with references. However, it leads to code such as the FileChangeDetector which needs to lock the mutex O(changed files) times.

Instead, let's just pass `&mut TreeState` as a parameter. The TreeState a fundamental input to most code in here, so conceptually this makes sense to me.

Reviewed By: quark-zju, zzl0

Differential Revision: D43501748

fbshipit-source-id: 3320b0dade2ffc3949e65b91b7adcb3368366d7b
2023-02-28 16:44:15 -08:00
Muir Manders
0d7f453ef3 workingcopy: eliminate WatchmanState
Summary:
This was a container type that didn't have a cohesive purpose. Now most functionality lives in the detect_changes free method.

I will restore test coverage in a later diff once I'm done rearranging things.

Reviewed By: zzl0

Differential Revision: D43501750

fbshipit-source-id: 38904dbc996d7f64f8abc2246fe92d44e2e8cf64
2023-02-28 16:44:15 -08:00
Muir Manders
213d493d01 workingcopy: pull watchman warnings into separate function
Summary: And fix warnings to use stderr instead of stdout.

Reviewed By: evangrayk

Differential Revision: D43501753

fbshipit-source-id: ba44fd2aa872f1077a22dce0bf8a22d56f22ef1a
2023-02-28 16:44:15 -08:00
Muir Manders
6e59087375 workingcopy: further pull logic out of WatchmanState
Summary:
The WatchmanState struct seems to add an unnecessary level of indirection during pending changes computation, so I want to eliminate it.

In this diff I separate out the core "compute changes given list of needs-check files" into a separate (easily testable) function.

I did not intend any behavior change except for the minor optimization where we no longer add files to "needs_mark" if they came from the treestate originally (i.e. they are already marked, don't need to mark again).

Reviewed By: quark-zju

Differential Revision: D43501751

fbshipit-source-id: e19573e62eb67d03f7ddeddfff703694951c70f6
2023-02-28 16:44:15 -08:00
Muir Manders
1688dc397c workingcopy: pull config out of WatchmanState struct
Summary:
The watchman config fields were only used in one spot, so separate them out of the state.

I'm preparing for some more changes, probably culminating in the elimination of WatchmanState.

Reviewed By: evangrayk

Differential Revision: D43501749

fbshipit-source-id: 7e62ad10b314e1239f7fbe68fa084919bc76330f
2023-02-28 16:44:15 -08:00