Visitar URL original
Limit WalkDir to the root directories referenced by the configuration by sverrejoh · Pull Request #4850 · meta/relay · GitHub
Skip to content

Limit WalkDir to the root directories referenced by the configuration - #4850

Closed
sverrejoh wants to merge 4 commits into
meta:mainfrom
sverrejoh:limit-walkdir-to-roots
Closed

sverrejoh wants to merge 4 commits into
meta:mainfrom
sverrejoh:limit-walkdir-to-roots

Conversation

@sverrejoh

@sverrejoh sverrejoh commented Nov 19, 2024 •

Copy link
Copy Markdown
Contributor

When not using Watchman the Relay Compiler will iterate over all files under root_dir, which can possibly include the entire repository. This is unnecessary work and might slow down large repositories.

The watchman implementation only listens to files under the roots defined by the config, but this is not implemented for the directory walking implementation in WalkDirFileSource. This change moves the get_all_roots() functionality from WatchmanFileSource to Config and shares it with WalkDirFileSource to make it only iterate over the folders configured as targets in Relay.

This fixes #4849

Moving the `get_all_roots` into `Config` so it can be shared between
`WatchmanFileSource` and `WalkDirFileSource`. This returns a refined list of all
the roots within the top root directory to limit which folders are searched, but
the optimization is only used for Watchman and not for the directory walking
implementation in WalkDirFileSource.
Uses the get_all_roots implementation moved from the Watchman implementation to
limit file access to the folders configured as targets in Realay.
@captbaritone

Copy link
Copy Markdown
Contributor

Nice! Makes sense to me. I'll import, but I'm out next week and may not be able to merge until after Thanksgiving.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@captbaritone has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@captbaritone merged this pull request in 9503d7b.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Relay Compiler iterates over every file under root when Watchman is disabled

3 participants