Update all pre-cloned submodules on startup
Fixes https://github.com/rust-lang/rust/issues/99083
This commit is contained in:
parent
e5a7d8f945
commit
f2164c324c
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user