|
|
@ -11,20 +11,29 @@ update_svn() { |
|
|
|
|
|
|
|
update_git() { |
|
|
|
local staged=false |
|
|
|
local branch= remote= merge= |
|
|
|
|
|
|
|
cd "$1" || return 1 |
|
|
|
echo "== $PWD" |
|
|
|
|
|
|
|
git fetch --all --prune |
|
|
|
git remote | xargs -r git fetch --multiple --prune --tags |
|
|
|
git fetch -q --all --prune |
|
|
|
git remote | xargs -r git fetch -q --multiple --prune --tags |
|
|
|
|
|
|
|
if [ -n "$(git ls -md)" ]; then |
|
|
|
if git stash; then |
|
|
|
if git stash -q; then |
|
|
|
staged=true |
|
|
|
fi |
|
|
|
fi |
|
|
|
git pull --rebase |
|
|
|
! $staged || git stash pop |
|
|
|
|
|
|
|
branch=`git branch | sed -ne 's!* \(.\)!\1!p'` |
|
|
|
remote=`git config "branch.${branch}.remote"` |
|
|
|
merge=`git config "branch.${branch}.merge"` |
|
|
|
|
|
|
|
git merge -q --stat --ff "$remote/${merge##refs/heads/}" |
|
|
|
if $staged; then |
|
|
|
git stash pop -q |
|
|
|
git status -s |
|
|
|
fi |
|
|
|
|
|
|
|
cd - > /dev/null |
|
|
|
} |
|
|
|