https://github.com/pupil-labs/pupil
Raw File
Tip revision: 421b5171faf0d063a5b957feb4e14cf4e03e7db0 authored by Moritz Kassner on 01 March 2015, 19:12:17 UTC
merge
Tip revision: 421b517
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