Use git-init templates (clone) and git config without --global (fetch) to disable recurseSubmodules
What does this MR do?
The Runner unconditionally disables submodules for the repository it is working on. This commit:
- Stops doing this using
git config --global
- For fetch, uses
- For clone, uses a custom git template directory to apply the config to the created .git/config file
Why was this MR needed?
git config --global modifies the user's ~/.gitconfig, which is surprising (you may want to test the runner using your own user, for instance). For Git 1.7.1, which is the minimum version we need to support, a custom template directory is the only feasible way to get
git clone to respect custom configuration directives at fetch time.
An alternative would be to re-implement git clone by running the plumbing commands in the correct sequence.
Are there points in the code the reviewer needs to double check?
Does this MR meet the acceptance criteria?
- CHANGELOG entry added
- Documentation created/updated
- Added for this feature/bug
- All builds are passing
Branch has no merge conflicts with
master(if you do - rebase it please)
What are the relevant issue numbers?
Closes #1469 (closed)