make_update: Fix case where a sub-module would not have required branch.

Issue revealed by rB546314fc9669 change, also error itself exited before
that commit.

Now we do accept git command to fail when trying to checkout the
specified branch from sub-modules, and only actually error in case the
fall-back branch (aka master) cannot be properly checked out.

Thanks fot Ray molenkamp (@LazyDodo) for report and initial patch
(D12560).
This commit is contained in:
Bastien Montagne 2021-09-20 12:40:51 +02:00
parent 7da9da2b27
commit 11e11c41f2

@ -200,13 +200,14 @@ def submodules_update(args, release_version, branch):
if msg: if msg:
skip_msg += submodule_path + " skipped: " + msg + "\n" skip_msg += submodule_path + " skipped: " + msg + "\n"
else: else:
# We are using `exit_on_error=False` here because sub-modules are allowed to not have requested branch,
# in which case falling back to default back-up branch is fine.
if make_utils.git_branch(args.git_command) != submodule_branch: if make_utils.git_branch(args.git_command) != submodule_branch:
call([args.git_command, "fetch", "origin"]) call([args.git_command, "fetch", "origin"])
call([args.git_command, "checkout", submodule_branch]) call([args.git_command, "checkout", submodule_branch], exit_on_error=False)
call([args.git_command, "pull", "--rebase", "origin", submodule_branch]) call([args.git_command, "pull", "--rebase", "origin", submodule_branch], exit_on_error=False)
# If we cannot find the specified branch for this submodule, fallback to default one (aka master). # If we cannot find the specified branch for this submodule, fallback to default one (aka master).
if make_utils.git_branch(args.git_command) != submodule_branch: if make_utils.git_branch(args.git_command) != submodule_branch:
call([args.git_command, "fetch", "origin"])
call([args.git_command, "checkout", submodule_branch_fallback]) call([args.git_command, "checkout", submodule_branch_fallback])
call([args.git_command, "pull", "--rebase", "origin", submodule_branch_fallback]) call([args.git_command, "pull", "--rebase", "origin", submodule_branch_fallback])
finally: finally: