#! /bin/sh if [ -z "$2" -o -n "$4" ]; then echo "Usage: $0 upstream origin [local]" >&2 exit 1 fi upstream="$1" origin="$2" local_repo="$3" test -z "$local_repo" && local_repo="`basename \"$origin\" .git`" if [ -d "$local_repo"/.git ]; then cd "$local_repo" fi && if [ -d .git ]; then git remote add upstream "$upstream" git remote set-url origin "$origin" || git remote add origin "$origin" else git clone -o upstream "$upstream" "$local_repo" && cd "$local_repo" && chmod a-x .git/config && git remote add origin "$origin" fi && "`dirname \"$0\"`"/set-commit-date-recursive && pwd >> "`dirname \"$0\"`"/locate-all.list && branch="`git rev-parse --abbrev-ref HEAD`" && git pull upstream $branch && git pull origin $branch && git push -u origin $branch && git config branch.$branch.remote upstream && git config branch.$branch.remotepush origin && git config branch.$branch.merge refs/heads/$branch && git config push.default current && exec git gc --aggressive