diff options
| author | Joshua Nelson <jnelson@cloudflare.com> | 2022-07-31 20:18:15 -0500 |
|---|---|---|
| committer | Joshua Nelson <jnelson@cloudflare.com> | 2022-07-31 20:18:15 -0500 |
| commit | f2164c324cedfed8e655342b26b2831bdb39c5f2 (patch) | |
| tree | 828cbbf6c80d0a27abaae02e5f35b8098a65110d | |
| parent | e5a7d8f945f4259fb6b8c4953a65248243c054d1 (diff) | |
| download | rust-f2164c324cedfed8e655342b26b2831bdb39c5f2.tar.gz rust-f2164c324cedfed8e655342b26b2831bdb39c5f2.zip | |
Update all pre-cloned submodules on startup
Fixes https://github.com/rust-lang/rust/issues/99083
| -rw-r--r-- | src/bootstrap/lib.rs | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index cd421c249d8..f84de73297a 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); } } |
