Follow-up after #40417, which should've fixed hangs. smol::fs uses a separate threadpool, which is a bit yuck. This PR also added a benchmark you can use to run a full worktree scan (initial one, that is) for arbitrary worktree.. and refactored worktree scanner to use async locks, as otherwise tests were deadlocking. :) I've benchmarked it against Zed, Linux and Chromium and saw a ~60% drop in initial worktree scan times across the board. Release Notes: - Significantly (3.3x speedup over the old implementation) improved speed of Zed's worktree scanner, that's responsible for synchronizing the state of your project with the state of files on hard drive. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
65 lines
1.6 KiB
TOML
65 lines
1.6 KiB
TOML
[package]
|
|
name = "worktree"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
publish.workspace = true
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lib]
|
|
path = "src/worktree.rs"
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
test-support = [
|
|
"gpui/test-support",
|
|
"http_client/test-support",
|
|
"language/test-support",
|
|
"settings/test-support",
|
|
"text/test-support",
|
|
"util/test-support",
|
|
]
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-lock.workspace = true
|
|
clock.workspace = true
|
|
collections.workspace = true
|
|
fs.workspace = true
|
|
futures.workspace = true
|
|
fuzzy.workspace = true
|
|
git.workspace = true
|
|
gpui.workspace = true
|
|
ignore.workspace = true
|
|
language.workspace = true
|
|
log.workspace = true
|
|
parking_lot.workspace = true
|
|
paths.workspace = true
|
|
postage.workspace = true
|
|
rpc = { workspace = true, features = ["gpui"] }
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
settings.workspace = true
|
|
smallvec.workspace = true
|
|
smol.workspace = true
|
|
sum_tree.workspace = true
|
|
text.workspace = true
|
|
util.workspace = true
|
|
workspace-hack.workspace = true
|
|
|
|
[dev-dependencies]
|
|
clock = { workspace = true, features = ["test-support"] }
|
|
collections = { workspace = true, features = ["test-support"] }
|
|
git2.workspace = true
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
http_client.workspace = true
|
|
paths = { workspace = true, features = ["test-support"] }
|
|
pretty_assertions.workspace = true
|
|
rand.workspace = true
|
|
rpc = { workspace = true, features = ["test-support"] }
|
|
settings = { workspace = true, features = ["test-support"] }
|
|
util = { workspace = true, features = ["test-support"] }
|
|
zlog.workspace = true
|