I feel like there should only be one method `submodules_update` and it should be this:
```
self.run_safe("cd `git rev-parse --show-toplevel` && git submodule --quiet update --init --rebase --recursive")
```

There is no need to chdir on the parent process.