X-Git-Url: https://feistymeow.org/gitweb/?p=feisty_meow.git;a=blobdiff_plain;f=scripts%2Frev_control%2Fversion_control.sh;h=c5ff3f02fd7c85df0569cea537a9248cdc8ec090;hp=61850e93b8dc951c7fb12f85d133677f5aed9717;hb=cd2fbf1809d39911a32ead7c3f972294c817e6ee;hpb=b3d5010247e3c0a988c87a4d7bdb87921f2af42b diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index 61850e93..c5ff3f02 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -3,6 +3,9 @@ # these are helper functions for doing localized revision control. # this script should be sourced into other scripts that use it. +# Author: Chris Koeritz +# Author: Kevin Wentworth + source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" @@ -269,20 +272,54 @@ function do_update() if test_writeable ".git"; then $blatt - # from very helpful page: - # https://stackoverflow.com/questions/10312521/how-to-fetch-all-git-branches - for remote in $( git branch -r | grep -v -- '->' ); do - git branch --track ${remote#origin/} $remote 2>/dev/null -#hmmm: ignoring errors from these, since they are continual. -#hmmm: if we could find a way to not try to track with a local branch when there's already one present, that would be swell. it's probably simple. - done +#let's start over clean here... + + git fetch origin + test_or_die "git fetch origin" + + git remote update + test_or_die "git remote update" + +# from: https://stackoverflow.com/questions/3258243/check-if-pull-needed-in-git +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 done yet. + + +# reslog=$(git log HEAD..origin/master --oneline) +# if [[ "${reslog}" != "" ]] ; then +# git merge origin/master + -#hmmm: well, one time it failed without the fetch. i hope that's because the fetch is actually needed and not because the whole approach is fubar. - git fetch --all 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER - test_or_die "git fetch" - git pull --all 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER - test_or_die "git pull" +# # from very helpful page: +# # https://stackoverflow.com/questions/10312521/how-to-fetch-all-git-branches +# for remote in $( git branch -r | grep -v -- '->' ); do +# git branch --track ${remote#origin/} $remote 2>/dev/null +##hmmm: ignoring errors from these, since they are continual. +##hmmm: if we could find a way to not try to track with a local branch when there's already one present, that would be swell. it's probably simple. +# done +# +##hmmm: well, one time it failed without the fetch. i hope that's because the fetch is actually needed and not because the whole approach is fubar. +# git fetch --all 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER +# test_or_die "git fetch" +# +# git pull --all 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER +# test_or_die "git pull" fi else # this is not an error necessarily; we'll just pretend they planned this.