diff options
| author | Ralf Jung <post@ralfj.de> | 2024-04-27 08:57:55 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-04-27 08:57:55 +0200 |
| commit | 2681edf93436a31ed0cfe127d8877c236627ffa3 (patch) | |
| tree | 4ccebe790714248a89c19c72da4b1e41fe338e4b | |
| parent | 3a74fae72d24d94ae310ecf6e8040a5d229889f6 (diff) | |
| download | rust-2681edf93436a31ed0cfe127d8877c236627ffa3.tar.gz rust-2681edf93436a31ed0cfe127d8877c236627ffa3.zip | |
josh rustc-pull: check that no new root commits get created
| -rw-r--r-- | src/tools/miri/miri-script/src/commands.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/miri/miri-script/src/commands.rs b/src/tools/miri/miri-script/src/commands.rs index 66707dee5e7..575bf4a15df 100644 --- a/src/tools/miri/miri-script/src/commands.rs +++ b/src/tools/miri/miri-script/src/commands.rs @@ -257,12 +257,26 @@ impl Command { }) .context("FAILED to fetch new commits, something went wrong (committing the rust-version file has been undone)")?; + // This should not add any new root commits. So count those before and after merging. + let num_roots = || -> Result<u32> { + Ok(cmd!(sh, "git rev-list HEAD --max-parents=0 --count") + .read() + .context("failed to determine the number of root commits")? + .parse::<u32>()?) + }; + let num_roots_before = num_roots()?; + // Merge the fetched commit. const MERGE_COMMIT_MESSAGE: &str = "Merge from rustc"; cmd!(sh, "git merge FETCH_HEAD --no-verify --no-ff -m {MERGE_COMMIT_MESSAGE}") .run() .context("FAILED to merge new commits, something went wrong")?; + // Check that the number of roots did not increase. + if num_roots()? != num_roots_before { + bail!("Josh created a new root commit. This is probably not the history you want."); + } + drop(josh); Ok(()) } |
