test(replay): Git history replay test#57
Conversation
ac00272 to
b226f77
Compare
There was a problem hiding this comment.
This is handy and fun. See https://github.com/weihanglo/diffy/actions/workflows/replay.yml that I have run test against lots of different repository.
(https://github.com/llvm/llvm-project/ timed out though I ran it locally and passed!)
40e241d to
d906442
Compare
f1dd80a to
c1f257f
Compare
Replays a git repository's history: 1. Parse each commit's diff output and applying patches with diffy 2. Compare against the actual file content at each commit. See the module level doc comment for more.
- replay.yml: reusable workflow for `replay` test against any git repo - replay-full.yml: full history replay for selected repos on master push - ci.yml: add replay job matrix against selected repos on PR push Also exclude replay test from default test execution since it requires more args to run correctly
Previously, `[[test]] test = false` excluded `tests/replay.rs` from `cargo check --tests` and `cargo clippy --all-targets`, so clippy and the type checker silently stopped looking at the file. With this commit, the replay test uses `#[ignore]` to stay out of default `cargo test` runs while remaining visible to lints and compilation. The replay workflow now opts in with `cargo test --test replay -- --ignored --nocapture`.
|
Hmm, I remembered I have done Anyway, thanks for catching up. Really appreciate it! |
Yeah this was on me when i was rebasing and I wasn't being careful updating the lockfile |
|
This is full git history replay result against the current main branch of rust-lang/rust (323k+ commits):
Binary patches and no-content (symlink/renames) changes were skipped. Looks nice! |
Replays a git repository's history:
See the module level doc comment for more.
BTW, this also update some CI workflows:
replay.yml: reusable workflow forreplaytest against any git reporeplay-full.yml: full history replay for selected repos on master pushci.yml: add replay job matrix aginast selected repos on PR push