X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Frev_control%2Fversion_control.sh;h=b96bcb3431fe55aa4f7bb478bc85e3300a08cd6b;hb=e768391ab81b189397f0fd19827999365f8b3e33;hp=a981b59c1f91a337339bc0d1ccc8722783acc280;hpb=233fcc778459e8c21bc89e128abfe5a1e42c2f96;p=feisty_meow.git diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index a981b59c..b96bcb34 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -11,12 +11,19 @@ source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" ############## -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' +# check git version to see if we can use autostash. +# 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-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' +#although initially attractive, above set of flags seems to lose history we don't want to +#lose. +PULL_ADDITION= fi ############## @@ -404,7 +411,7 @@ function do_careful_git_update() 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 @@ -418,7 +425,7 @@ function do_careful_git_update() # 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 @@ -460,7 +467,7 @@ function do_update() 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"