-#hmmm: this should be a function:
-# from: https://stackoverflow.com/questions/3258243/check-if-pull-needed-in-git
-UPSTREAM=$(parent_branch_name)
-#argh: original UPSTREAM='${1:-'\''@{u}'\''}'
-LOCAL=$(git rev-parse @)
-REMOTE=$(git rev-parse "$UPSTREAM")
-BASE=$(git merge-base @ "$UPSTREAM")
-var UPSTREAM LOCAL REMOTE BASE
-
-if [ "$LOCAL" == "$REMOTE" ]; then
- echo "Up-to-date"
-elif [ "$LOCAL" == "$BASE" ]; then
- echo "Need to pull"
-elif [ "$REMOTE" == "$BASE" ]; then
- echo "Need to push"
-else
- echo "Diverged"
-fi
-
-echo The rest of pull is not being done yet.
-return 1
+ local this_branch="$(my_branch_name)"
+#appears to be useless; reports no changes when we need to know about remote changes that do exist:
+#hmmm: trying it out again now that things are better elsewhere. let's see what it says.
+ state=$(check_branch_state "$this_branch")
+ echo "=> branch '$this_branch' state is: $state"
+
+ # this code is now doing what i have to do when i repair the repo. and it seems to be good so far.
+ local branch_list=$(all_branch_names)
+ local bran
+ for bran in $branch_list; do
+# echo "synchronizing remote branch: $bran"
+ git checkout "$bran"
+ test_or_die "git switching checkout to remote branch: $bran"
+
+ state=$(check_branch_state "$bran")
+ echo "=> branch '$bran' state is: $state"
+
+ remote_branch_info=$(git ls-remote --heads origin $bran 2>/dev/null)
+ if [ ! -z "$remote_branch_info" ]; then
+ # we are pretty sure the remote branch does exist.
+ git pull --no-ff origin "$bran"
+ fi
+ test_or_die "git pull of remote branch: $bran"
+ done
+ # now switch back to our branch.
+ git checkout "$this_branch"
+ test_or_die "git checking out our current branch: $this_branch"