diff options
| author | Joshua Nelson <jyn514@gmail.com> | 2021-08-24 19:51:53 -0500 |
|---|---|---|
| committer | Joshua Nelson <jyn514@gmail.com> | 2021-08-24 19:55:07 -0500 |
| commit | 9d664b24f92fbbe22b3243014bb98f6878db30a9 (patch) | |
| tree | d387af77cd63b46ff0752fe897c82b52ab2005b7 /src/bootstrap/bin | |
| parent | b03ccace573bb91e27625c190a0f7807045a1012 (diff) | |
| download | rust-9d664b24f92fbbe22b3243014bb98f6878db30a9.tar.gz rust-9d664b24f92fbbe22b3243014bb98f6878db30a9.zip | |
Make the pre-commit script pre-push instead
This should make it substantially less annoying, and hopefully more people will find it useful. In particular, it will no longer run tidy each time you run `git commit --amend` or rebase a branch. This also warns if you have the old script in pre-commit; see the HACK comment for details.
Diffstat (limited to 'src/bootstrap/bin')
| -rw-r--r-- | src/bootstrap/bin/main.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bootstrap/bin/main.rs b/src/bootstrap/bin/main.rs index e730a2557e0..9c41ab69c8b 100644 --- a/src/bootstrap/bin/main.rs +++ b/src/bootstrap/bin/main.rs @@ -30,6 +30,7 @@ fn main() { println!("{}", suggestion); } + let pre_commit = config.src.join(".git").join("hooks").join("pre-commit"); Build::new(config).build(); if suggest_setup { @@ -42,6 +43,19 @@ fn main() { println!("{}", suggestion); } + // Give a warning if the pre-commit script is in pre-commit and not pre-push. + // HACK: Since the commit script uses hard links, we can't actually tell if it was installed by x.py setup or not. + // We could see if it's identical to src/etc/pre-push.sh, but pre-push may have been modified in the meantime. + // Instead, look for this comment, which is almost certainly not in any custom hook. + if std::fs::read_to_string(pre_commit).map_or(false, |contents| { + contents.contains("https://github.com/rust-lang/rust/issues/77620#issuecomment-705144570") + }) { + println!( + "warning: You have the pre-push script installed to .git/hooks/pre-commit. \ + Consider moving it to .git/hooks/pre-push instead, which runs less often." + ); + } + if suggest_setup || changelog_suggestion.is_some() { println!("note: this message was printed twice to make it more likely to be seen"); } |
