##############
+gitvertest="$(git version | sed -e 's/git version [0-9]\.//' | sed -e 's/\.0$//' )"
+echo gitvertest is $gitvertest
+if [[ $gitvertest > 9 ]]; then
+ # we believe auto-stash is not available until 2.9, but we are sure it was missing
+ # on ubuntu xenial with git 2.7.4.
+ PULL_ADDITION='--rebase --autostash'
+fi
+
+##############
+
# the maximum depth that the recursive functions will try to go below the starting directory.
export MAX_DEPTH=5
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 --rebase --autostash origin "$bran" | $TO_SPLITTER
+ git pull $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 --rebase --autostash --all | $TO_SPLITTER
+ git pull $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 --rebase --autostash 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER
+ git pull $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"