Revision 6028191c36e72c6dc29894acbdc2e0f508823c70 authored by Moritz Kassner on 26 September 2014, 12:40:10 UTC, committed by Moritz Kassner on 26 September 2014, 12:40:10 UTC
1 parent 71bac11
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
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...