# this appears to be an ubuntu issue, where xenial did not provide it even though the
# feature appeared in git 2.6 and xenial claims it has git version 2.7.4. eventually,
# this version test can go away.
-gitvertest="$(git version | sed -e 's/git version [0-9]\.//' | sed -e 's/\.0$//' )"
-#hmmm: temp below!
-echo gitvertest is $gitvertest
+gitvertest="$(git version | sed -e 's/git version [0-9]\.//' | sed -e 's/\.[0-9][0-9]*$//' )"
if (( $gitvertest >= 11 )); then
# auto-stash is not available until 2.6 for git, but ubuntu is misreporting or using a
# differing version number somehow. we are sure autostash was missing on ubuntu xenial
# with git 2.7.4 and it's definitely present in zesty with git at 2.11.
- PULL_ADDITION='--rebase --autostash'
+# PULL_ADDITION='--rebase --autostash'
+#although initially attractive, above set of flags seems to lose history we don't want to
+#lose.
+PULL_ADDITION=
fi
##############
restore_terminal_title
}
-# does a careful git update on all the folders in the specified list.
+# does a careful update on all the folders in the specified list;
+# it looks in the REPOSITORY_LIST for those names and updates them.
+# this is just like checkout_list, but it's for the puffing up action
+# we need to do on git.
function puff_out_list()
{
# make the list of directories unique.
test_or_die "changing to directory: $directory"
if [ ! -d ".git" ]; then
- # we ignore if they're jumping into a non-useful folder, but also tell them.
- echo "Directory is not a git repository: $directory"
- return 0
+
+# # we ignore if they're jumping into a non-useful folder, but also tell them.
+# echo "Directory is not a git repository: $directory"
+# return 0
+
+ # new and better approach; just boil down to a getem action.
+ popd &>/dev/null
+ do_update $directory
+ return $?
fi
local this_branch="$(my_branch_name)"
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 $PULL_ADDITION origin "$bran" | $TO_SPLITTER
+ git pull --tags $PULL_ADDITION origin "$bran" | $TO_SPLITTER
# we may want to choose to do fast forward, to avoid crazy multiple merge histories
# without any changes in them. --no-ff
promote_pipe_return 0
# now pull down any changes in our own origin in the repo, to stay in synch
# with any changes from others.
- git pull $PULL_ADDITION --all | $TO_SPLITTER
+ git pull --tags $PULL_ADDITION --all | $TO_SPLITTER
#is the above really important when we did this branch already in the loop?
#it does an --all, but is that effective or different? should we be doing that in above loop?
# --no-ff
elif [ -d ".git" ]; then
if test_writeable ".git"; then
$blatt
- git pull $PULL_ADDITION 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
+ git pull --tags $PULL_ADDITION 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
#ordinary pulls should be allowed to do fast forward: --no-ff
promote_pipe_return 0
test_or_die "git pull of origin"