From 0f52ffacf1259b7d90d59cc3b7595418526ede82 Mon Sep 17 00:00:00 2001 From: Emilie Date: Thu, 26 Oct 2017 19:20:06 +0200 Subject: [PATCH] [Submodule] : add update submodule script --- update_submodules.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 update_submodules.sh diff --git a/update_submodules.sh b/update_submodules.sh new file mode 100755 index 0000000..4e687a1 --- /dev/null +++ b/update_submodules.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# The script detect the right main project branch, then update the submodule function of branch-[mainProjectBranch] +# For example, if you define these variables in .gitmodules : +# - branch-dev +# - branch-master +# If you are on dev branch in main project, the script will update submodule functions of branch-dev you've defined +# In main project, if you are in another branch than master or dev, it will take by default dev branch +# If you don't define any branches for you submodule, the script will update from master + +curr_branch=$(git symbolic-ref --short HEAD) + +echo $curr_branch +if [ $curr_branch != "master" ] && [ $curr_branch != "dev" ]; +then + curr_branch="dev" +fi + +echo $curr_branch +#Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules +git submodule sync +# Checkout all submodules on right branches specified in .gitmodules, by default the branch is master +git submodule foreach --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch-'$curr_branch' || echo master)' +# Pull all submodules on right branches specified in .gitmodules, by default the branch is master +git submodule foreach --recursive 'git pull origin $(git config -f $toplevel/.gitmodules submodule.$name.branch-'$curr_branch' || echo master)' -- 2.39.5