Skip to content

test(replay): Git history replay test#57

Merged
bmwill merged 3 commits intobmwill:masterfrom
weihanglo:replay-test
Apr 11, 2026
Merged

test(replay): Git history replay test#57
bmwill merged 3 commits intobmwill:masterfrom
weihanglo:replay-test

Conversation

@weihanglo
Copy link
Copy Markdown
Contributor

@weihanglo weihanglo commented Apr 10, 2026

Blocked on #55. Please review from f281b52

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.

BTW, this also update some CI workflows:

  • 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 aginast selected repos on PR push

@weihanglo weihanglo force-pushed the replay-test branch 2 times, most recently from ac00272 to b226f77 Compare April 10, 2026 05:34
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!)

@weihanglo weihanglo force-pushed the replay-test branch 2 times, most recently from 40e241d to d906442 Compare April 11, 2026 00:18
@bmwill bmwill force-pushed the replay-test branch 2 times, most recently from f1dd80a to c1f257f Compare April 11, 2026 15:10
weihanglo and others added 3 commits April 11, 2026 10:12
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`.
@bmwill bmwill merged commit 3d9fd1d into bmwill:master Apr 11, 2026
11 checks passed
@weihanglo weihanglo deleted the replay-test branch April 11, 2026 15:19
@weihanglo
Copy link
Copy Markdown
Contributor Author

Hmm, I remembered I have done cargo update rayon --precise 1.10.0 as well as CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update --workspace. Somehow the change got reverted.

Anyway, thanks for catching up. Really appreciate it!

@bmwill
Copy link
Copy Markdown
Owner

bmwill commented Apr 11, 2026

Hmm, I remembered I have done cargo update rayon --precise 1.10.0 as well as CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update --workspace. Somehow the change got reverted.

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

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants