fetch-all.sh: use git-branch - still "echo", no real command
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user