From f2164c324cedfed8e655342b26b2831bdb39c5f2 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sun, 31 Jul 2022 20:18:15 -0500 Subject: [PATCH] Update all pre-cloned submodules on startup Fixes https://github.com/rust-lang/rust/issues/99083 --- src/bootstrap/lib.rs | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index cd421c249d8d..f84de73297ac 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -624,20 +624,6 @@ impl Build { /// If any submodule has been initialized already, sync it unconditionally. /// This avoids contributors checking in a submodule change by accident. pub fn maybe_update_submodules(&self) { - // WARNING: keep this in sync with the submodules hard-coded in bootstrap.py - let mut bootstrap_submodules: Vec<&str> = vec![ - "src/tools/rust-installer", - "src/tools/cargo", - "src/tools/rls", - "src/tools/miri", - "library/backtrace", - "library/stdarch", - ]; - // As in bootstrap.py, we include `rust-analyzer` if `build.vendor` was set in - // `config.toml`. - if self.config.vendor { - bootstrap_submodules.push("src/tools/rust-analyzer"); - } // Avoid running git when there isn't a git checkout. if !self.config.submodules(&self.rust_info) { return; @@ -653,10 +639,8 @@ impl Build { // Look for `submodule.$name.path = $path` // Sample output: `submodule.src/rust-installer.path src/tools/rust-installer` let submodule = Path::new(line.splitn(2, ' ').nth(1).unwrap()); - // avoid updating submodules twice - if !bootstrap_submodules.iter().any(|&p| Path::new(p) == submodule) - && channel::GitInfo::new(false, submodule).is_git() - { + // Don't update the submodule unless it's already been cloned. + if channel::GitInfo::new(false, submodule).is_git() { self.update_submodule(submodule); } }