#! /bin/sh
-if [ -z "$2" ]; then
- echo "Usage: $0 upstream origin" >&2
+if [ -z "$2" -o -n "$4" ]; then
+ echo "Usage: $0 upstream origin [local]" >&2
exit 1
fi
upstream="$1"
origin="$2"
-local_repo="`basename \"$origin\" .git`"
+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 upstream "$upstream"
+ git remote set-url origin "$origin" || git remote add origin "$origin"
else
git clone -o upstream "$upstream" "$local_repo" &&
cd "$local_repo" &&
- pwd >> "`dirname \"$0\"`"/locate-all.list &&
+ chmod a-x .git/config &&
git remote add origin "$origin"
fi &&
-chmod a-x .git/config &&
-branch="`git rev-parse --abbrev-ref HEAD`"
+"`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 &&