]> git.phdru.name Git - git-scripts.git/blobdiff - fork
Refactor: Edit `.git/description` as the last step
[git-scripts.git] / fork
diff --git a/fork b/fork
index 2a537b483b87c5d4d0079fcf465918531fdbaa01..6c07d6c4b2d4ccbec2b36c29b0add9d83c235d9a 100755 (executable)
--- a/fork
+++ b/fork
@@ -1,25 +1,27 @@
 #! /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 origin "$origin"
+   git remote add upstream "$upstream" ||
+       git remote set-url 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 &&
 
@@ -36,4 +38,5 @@ git config branch.$branch.remotepush origin &&
 git config branch.$branch.merge refs/heads/$branch &&
 git config push.default current &&
 
-exec git gc --aggressive
+git gc --aggressive &&
+exec `git var GIT_EDITOR` .git/description