From cee262e31d3486cc43b35a1795d687b0863e6684 Mon Sep 17 00:00:00 2001 From: Bruno Raoult Date: Tue, 28 May 2024 09:44:34 +0200 Subject: [PATCH] fetch-all.sh: use git-branch - still "echo", no real command --- scripts/fetch-all.sh | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/scripts/fetch-all.sh b/scripts/fetch-all.sh index df04b1c..35b5399 100755 --- a/scripts/fetch-all.sh +++ b/scripts/fetch-all.sh @@ -2,16 +2,21 @@ origin=origin -declare -a remotes local +declare -a remotes local_b +#declare -A aremotes +declare -A alocal_b +# get remotes list readarray -t remotes < <(git remote) -declare -A aremotes alocal_b # fetch all remotes -for remote in "${remotes[@]}"; do - aremotes["$remote"]=1 - echo doing git fetch -a "$remote" -done +git fetch --all + +# fill associative array with remote +#for remote in "${remotes[@]}"; do +# aremotes["$remote"]=1 +# echo doing git fetch -a "$remote" +#done # get local branches readarray -t local_b < <(git for-each-ref --format='%(refname:short)' refs/heads/) @@ -21,23 +26,25 @@ for ref in "${local_b[@]}"; do alocal_b[$ref]=1 done - +# get origin branches readarray -t orig_b < <(git for-each-ref --format='%(refname:short)' \ refs/remotes/"$origin"/) declare -p remotes -#declare -p aremotes declare -p local_b orig_b -# find-out missing local branches +# find-out missing local branches and track them for remote_b in "${orig_b[@]}"; do short=${remote_b#"$origin"/}; - echo "$remote_b -> $short ${alocal_b[$short]}" + #echo "$remote_b -> $short ${alocal_b[$short]}" if ! [[ -v alocal_b[$short] ]]; then - echo git switch -t "$remote_b" + echo git branch --track "$short" "$remote_b" + # echo git branch: "$remote_b" fi done +echo git pull --all +