[Bf-blender-cvs] [da4796ebf7e] master: Build: change make update to not print errors regarding submodule branches
Brecht Van Lommel
noreply at git.blender.org
Mon Sep 20 14:07:03 CEST 2021
Commit: da4796ebf7ea728dc81ff4b3c62410230520977a
Author: Brecht Van Lommel
Date: Mon Sep 20 13:17:01 2021 +0200
Branches: master
https://developer.blender.org/rBda4796ebf7ea728dc81ff4b3c62410230520977a
Build: change make update to not print errors regarding submodule branches
Instead of trying to checkout non-existent branches and getting confusing fatal
error prints, check if the branch exists first.
Ref D12560
===================================================================
M build_files/utils/make_update.py
M build_files/utils/make_utils.py
===================================================================
diff --git a/build_files/utils/make_update.py b/build_files/utils/make_update.py
index f653639ec6d..30ef090efbb 100755
--- a/build_files/utils/make_update.py
+++ b/build_files/utils/make_update.py
@@ -200,16 +200,20 @@ def submodules_update(args, release_version, branch):
if msg:
skip_msg += submodule_path + " skipped: " + msg + "\n"
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:
- call([args.git_command, "fetch", "origin"])
- call([args.git_command, "checkout", submodule_branch], exit_on_error=False)
- 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 make_utils.git_branch(args.git_command) != submodule_branch:
- call([args.git_command, "checkout", submodule_branch_fallback])
- call([args.git_command, "pull", "--rebase", "origin", submodule_branch_fallback])
+ # Find a matching branch that exists.
+ call([args.git_command, "fetch", "origin"])
+ if make_utils.git_branch_exists(args.git_command, submodule_branch):
+ pass
+ elif make_utils.git_branch_exists(args.git_command, submodule_branch_fallback):
+ submodule_branch = submodule_branch_fallback
+ else:
+ submodule_branch = None
+
+ # Switch to branch and pull.
+ if submodule_branch:
+ if make_utils.git_branch(args.git_command) != submodule_branch:
+ call([args.git_command, "checkout", submodule_branch])
+ call([args.git_command, "pull", "--rebase", "origin", submodule_branch])
finally:
os.chdir(cwd)
diff --git a/build_files/utils/make_utils.py b/build_files/utils/make_utils.py
index db352ff7e16..9def0059ceb 100755
--- a/build_files/utils/make_utils.py
+++ b/build_files/utils/make_utils.py
@@ -8,14 +8,19 @@ import subprocess
import sys
-def call(cmd, exit_on_error=True):
- print(" ".join(cmd))
+def call(cmd, exit_on_error=True, silent=False):
+ if not silent:
+ print(" ".join(cmd))
# Flush to ensure correct order output on Windows.
sys.stdout.flush()
sys.stderr.flush()
- retcode = subprocess.call(cmd)
+ if silent:
+ retcode = subprocess.call(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+ else:
+ retcode = subprocess.call(cmd)
+
if exit_on_error and retcode != 0:
sys.exit(retcode)
return retcode
@@ -38,6 +43,11 @@ def check_output(cmd, exit_on_error=True):
return output.strip()
+def git_branch_exists(git_command, branch):
+ return call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or \
+ call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
+
+
def git_branch(git_command):
# Get current branch name.
try:
More information about the Bf-blender-cvs
mailing list