https://github.com/samtuhka/pupil
Raw File
Tip revision: 62cb1c6f9f2511536f42e6555445156a878846f9 authored by Moritz Kassner on 25 March 2014, 09:17:30 UTC
added help strings to accuracy test GUI.
Tip revision: 62cb1c6
update
#!/bin/bash
#
# Usage: pull
#
# Pulls remote changes using rebase & tries to rebundle,
# safely stashing and re-applying your local changes, if any
#


function do_update(){
    # Update our remote
    echo "Fetching from $remote ..."
    git fetch $remote || exit $?

    # Pull, using rebase if configured
    rebase="--rebase" # TODO disable if env-var is set
    git pull $rebase $remote $remote_branch || exit $?

    # Update submodules
    git submodule update || exit $?

    echo "Done"
}


cd $(dirname $0)

branch=$(git branch --no-color 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/') || exit $?
default_remote="origin"
remote=$(git config "branch.${branch}.remote" || echo "$default_remote")
remote_branch=$( (git config "branch.${branch}.merge" || echo "refs/heads/$branch") | awk -F '/' '{ print $3 }' )

# Stash any local changes
stash=$(git stash)

if [[ "$stash" =~ "No local changes to save" ]]; then
    do_update
    exit 0
    fi

echo "You have made changes to the source code. Do you want to continue the update and have them saved in a WIP stash?"
    read -p "Type: Yes/No" -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]] ; then
        do_update
        exit 0
    fi
    git stash pop
    echo "Aborted the Update, nothing changed"
    exit 1


back to top