diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 0c5a0cbc06eb9..38d3c7aec4941 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -1026,7 +1026,15 @@ def update_submodule(self, module, checked_out, recorded_submodules): if self.git_version >= distutils.version.LooseVersion("2.11.0"): update_args.append("--progress") update_args.append(module) - run(update_args, cwd=self.rust_root, verbose=self.verbose, exception=True) + try: + run(update_args, cwd=self.rust_root, verbose=self.verbose, exception=True) + except RuntimeError: + print("Failed updating submodule. This is probably due to uncommitted local changes.") + print('Either stash the changes by running "git stash" within the submodule\'s') + print('directory, reset them by running "git reset --hard", or commit them.') + print("To reset all submodules' changes run", end=" ") + print('"git submodule foreach --recursive git reset --hard".') + raise SystemExit(1) run(["git", "reset", "-q", "--hard"], cwd=module_path, verbose=self.verbose)