jj/lib/tests
Yuya Nishihara 8caec186c1 local_working_copy: filter deleted files per directory (or job)
This greatly reduces the amount of paths to be sent over the channel and the
strings to be hashed.

Benchmark:
1. original (omitted)
2. per-directory spawn (previous patch)
3. per-directory deleted files (this patch)
4. shorter path comparison (omitted)

gecko-dev (~357k files, ~25k dirs)
```
% JJ_CONFIG=/dev/null hyperfine --sort command --warmup 3 --runs 30 ..
Benchmark 2: target/release-with-debug/jj-2 -R ~/mirrors/gecko-dev debug snapshot
  Time (mean ± σ):     710.7 ms ±   9.1 ms    [User: 3070.7 ms, System: 2142.6 ms]
  Range (min … max):   695.9 ms … 740.1 ms    30 runs

Benchmark 3: target/release-with-debug/jj-3 -R ~/mirrors/gecko-dev debug snapshot
  Time (mean ± σ):     480.1 ms ±   8.8 ms    [User: 3190.5 ms, System: 2127.2 ms]
  Range (min … max):   471.2 ms … 509.8 ms    30 runs

Relative speed comparison
        1.76 ±  0.03  target/release-with-debug/jj-2 -R ~/mirrors/gecko-dev debug snapshot
        1.19 ±  0.03  target/release-with-debug/jj-3 -R ~/mirrors/gecko-dev debug snapshot
```

linux (~87k files, ~6k dirs)
```
% JJ_CONFIG=/dev/null hyperfine --sort command --warmup 3 --runs 30 ..
Benchmark 2: target/release-with-debug/jj-2 -R ~/mirrors/linux debug snapshot
  Time (mean ± σ):     242.3 ms ±   3.3 ms    [User: 656.8 ms, System: 538.0 ms]
  Range (min … max):   236.9 ms … 252.3 ms    30 runs

Benchmark 3: target/release-with-debug/jj-3 -R ~/mirrors/linux debug snapshot
  Time (mean ± σ):     204.2 ms ±   3.0 ms    [User: 667.3 ms, System: 545.6 ms]
  Range (min … max):   197.1 ms … 209.2 ms    30 runs

Relative speed comparison
        1.27 ±  0.03  target/release-with-debug/jj-2 -R ~/mirrors/linux debug snapshot
        1.07 ±  0.02  target/release-with-debug/jj-3 -R ~/mirrors/linux debug snapshot
```

nixpkgs (~45k files, ~31k dirs)
```
% JJ_CONFIG=/dev/null hyperfine --sort command --warmup 3 --runs 30 ..
Benchmark 2: target/release-with-debug/jj-2 -R ~/mirrors/nixpkgs debug snapshot
  Time (mean ± σ):     190.7 ms ±   4.1 ms    [User: 859.3 ms, System: 881.1 ms]
  Range (min … max):   184.6 ms … 202.4 ms    30 runs

Benchmark 3: target/release-with-debug/jj-3 -R ~/mirrors/nixpkgs debug snapshot
  Time (mean ± σ):     173.3 ms ±   6.7 ms    [User: 899.4 ms, System: 889.0 ms]
  Range (min … max):   166.5 ms … 197.9 ms    30 runs

Relative speed comparison
        1.18 ±  0.03  target/release-with-debug/jj-2 -R ~/mirrors/nixpkgs debug snapshot
        1.07 ±  0.04  target/release-with-debug/jj-3 -R ~/mirrors/nixpkgs debug snapshot
```

git (~4.5k files, 0.2k dirs)
```
% JJ_CONFIG=/dev/null hyperfine --sort command --warmup 30 --runs 50 ..
Benchmark 2: target/release-with-debug/jj-2 -R ~/mirrors/git debug snapshot
  Time (mean ± σ):      30.6 ms ±   1.1 ms    [User: 33.8 ms, System: 39.0 ms]
  Range (min … max):    29.0 ms …  35.0 ms    50 runs

Benchmark 3: target/release-with-debug/jj-3 -R ~/mirrors/git debug snapshot
  Time (mean ± σ):      28.8 ms ±   1.0 ms    [User: 33.0 ms, System: 37.6 ms]
  Range (min … max):    26.8 ms …  31.3 ms    50 runs

Relative speed comparison
        1.06 ±  0.05  target/release-with-debug/jj-2 -R ~/mirrors/git debug snapshot
        1.00          target/release-with-debug/jj-3 -R ~/mirrors/git debug snapshot
```
2024-12-10 10:51:04 +09:00
..
runner.rs rewrite: fix duplicated commits to be rebased onto destination 2024-11-21 10:49:51 +09:00
test_annotate.rs annotate: add low-level function to specify starting file content 2024-11-12 08:26:42 +09:00
test_bad_locking.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_commit_builder.rs config: add convenient method to insert value into layer, migrate callers 2024-12-07 11:06:21 +09:00
test_commit_concurrent.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_conflicts.rs conflicts: add "git" conflict marker style 2024-11-23 08:28:47 -06:00
test_default_revset_graph_iterator.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_git.rs jj-lib: abstract a lower-level api for fetching from git. 2024-12-01 12:22:09 +00:00
test_git_backend.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_gpg.rs formatting only: switch to Item level import ganularity 2024-08-22 14:52:54 -04:00
test_id_prefix.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_index.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_init.rs settings: own StackedConfig by UserSettings, migrate tests to use config layer 2024-11-30 10:01:05 +09:00
test_load_repo.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_local_working_copy.rs local_working_copy: filter deleted files per directory (or job) 2024-12-10 10:51:04 +09:00
test_local_working_copy_concurrent.rs tests: do not pass in commit objects loaded from different store 2024-11-30 10:20:43 +09:00
test_local_working_copy_sparse.rs conflicts: add "ui.conflict-marker-style" config 2024-11-23 08:28:47 -06:00
test_merge_trees.rs store: make get_tree() functions take owned repo path 2024-11-27 18:53:28 -08:00
test_merged_tree.rs merged_tree: remove redundant .clone() from TreeDiffStreamImpl::new() 2024-11-30 10:20:43 +09:00
test_mut_repo.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_operations.rs settings: own StackedConfig by UserSettings, migrate tests to use config layer 2024-11-30 10:01:05 +09:00
test_refs.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_revset.rs revset: allow tags() to take a pattern for an argument 2024-11-20 00:47:23 +00:00
test_rewrite.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_rewrite_duplicate.rs rewrite: fix duplicated commits to be rebased onto destination 2024-11-21 10:49:51 +09:00
test_rewrite_transform.rs transaction: rename mut_repo() to idiomatic repo_mut() 2024-09-07 10:51:43 -07:00
test_signing.rs settings: own StackedConfig by UserSettings, migrate tests to use config layer 2024-11-30 10:01:05 +09:00
test_ssh_signing.rs formatting only: switch to Item level import ganularity 2024-08-22 14:52:54 -04:00
test_view.rs transaction: propagate errors from commit() 2024-11-13 23:05:24 -08:00
test_workspace.rs testutils: move default_store_factories() to TestEnvironment 2024-11-02 08:39:02 +09:00