back to square one
authorFred T. Hamster <fred@gruntose.com>
Fri, 10 Nov 2017 14:08:03 +0000 (09:08 -0500)
committerFred T. Hamster <fred@gruntose.com>
Fri, 10 Nov 2017 14:08:03 +0000 (09:08 -0500)
rebuilding the git pull process from scratch, since the simplistic approach we had enjoyed so well for so long totally doesn't work with branches, and our new fangled cobbled together version from across the internet isn't right either.  need to build reliable pieces one at a time.

scripts/rev_control/version_control.sh

index 61850e93b8dc951c7fb12f85d133677f5aed9717..c5ff3f02fd7c85df0569cea537a9248cdc8ec090 100644 (file)
@@ -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.