]> git.phdru.name Git - git-scripts.git/blob - fork
Refactor: Edit `.git/description` as the last step
[git-scripts.git] / fork
1 #! /bin/sh
2
3 if [ -z "$2" -o -n "$4" ]; then
4    echo "Usage: $0 upstream origin [local]" >&2
5    exit 1
6 fi
7
8 upstream="$1"
9 origin="$2"
10 local_repo="$3"
11 test -z "$local_repo" && local_repo="`basename \"$origin\" .git`"
12
13 if [ -d "$local_repo"/.git ]; then
14    cd "$local_repo"
15 fi &&
16
17 if [ -d .git ]; then
18    git remote add upstream "$upstream" ||
19        git remote set-url upstream "$upstream"
20    git remote set-url origin "$origin" ||
21        git remote add origin "$origin"
22 else
23    git clone -o upstream "$upstream" "$local_repo" &&
24    cd "$local_repo" &&
25    git remote add origin "$origin"
26 fi &&
27
28 "`dirname \"$0\"`"/set-commit-date-recursive &&
29 pwd >> "`dirname \"$0\"`"/locate-all.list &&
30 branch="`git rev-parse --abbrev-ref HEAD`" &&
31
32 git pull upstream $branch &&
33 git pull origin $branch &&
34 git push -u origin $branch &&
35
36 git config branch.$branch.remote upstream &&
37 git config branch.$branch.remotepush origin &&
38 git config branch.$branch.merge refs/heads/$branch &&
39 git config push.default current &&
40
41 git gc --aggressive &&
42 exec `git var GIT_EDITOR` .git/description