Fix bug in ListSubmodules() when submodule branch=. #253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix a bug where a submodule attribute of
branch=.was being treated asbranch=HEAD.branch=.is a special value that means a submodule should use the same branch name as the parent branch (see https://git-scm.com/docs/git-submodule#:~:text=same%20name%20as%20the%20current%20branch). Setting it to 'HEAD' is only correct if the main project'sHEADbranch is being imported. In particular, this breaks the import of older versions of projects that usebranch=.(such at boostorg/boost starting at version 1.70).It would be possible to plumb information of the main repo's branch name through to listSubmodules() to get the intended network savings here. However, that's a more complex change. Treating
branch=.the same as the case where no branch is specified fixes the problem.Tested:
An import of github.com/boostorg/boost.git for at version 1.72 fails to load the submodules correctly, but works after applying this patch.