jj/lib
Yuya Nishihara 4f15d1f779 repo: implement method to look up change_id prefix by using IdIndex
revset::resolve_change_id() for ReadonlyRepo will be replaced with this
implementation. This doesn't mean revset query will speed up. A trivial
query will become slower due to the initialization cost of the change id
index. "jj log -r hex" will get faster since we have to pay the cost anyway.

Benchmark numbers (against my "linux" repo):

Command:
    hyperfine --warmup 3 --runs 20 \
      "jj log -r $hex -T '' --no-commit-working-copy --no-graph"

Linear search (e874570947):
    Time (mean ± σ):     223.9 ms ±  16.2 ms    [User: 181.2 ms, System: 42.7 ms]
    Range (min … max):   207.7 ms … 247.6 ms    50 runs

Building IdIndex:
    Time (mean ± σ):     855.0 ms ±  21.7 ms    [User: 788.4 ms, System: 66.6 ms]
    Range (min … max):   822.6 ms … 927.5 ms    50 runs

Building IdIndex, but hacked to store SmallVec<[u8; 20]>:
    Time (mean ± σ):     406.1 ms ±  15.9 ms    [User: 354.1 ms, System: 52.0 ms]
    Range (min … max):   382.2 ms … 428.6 ms    50 runs

For my "jj" work repo, changes are < ~1ms.
2023-01-26 14:10:26 +09:00
..
gen-protos cargo: bump prost-build from 0.11.5 to 0.11.6 2023-01-13 21:24:02 +00:00
src repo: implement method to look up change_id prefix by using IdIndex 2023-01-26 14:10:26 +09:00
tests cleanup: update more "checkout" to "working-copy commit" and similar 2023-01-25 11:02:59 -08:00
testutils cargo: bump git2 from 0.16.0 to 0.16.1 2023-01-21 00:05:57 +00:00
build.rs lib: replace protobuf crate with prost 2022-12-22 07:04:35 -08:00
Cargo.toml cargo: bump pest_derive from 2.5.3 to 2.5.4 2023-01-25 07:49:05 -08:00