--- /dev/null
+#!/bin/sh
+
+new_branch_name=$1
+
+# Make sure we have the latest origin/stable to branch
+git fetch
+
+# Specifying stable to get the last released code
+git checkout -b $new_branch_name origin/stable
+
+# Go ahead and put the branch out on the server
+git push origin $new_branch_name
+
+# Setup the merge property so that pulls come from the right place (instead of stable)
+git config --replace-all "branch.$new_branch_name.merge" "refs/heads/$new_branch_name"
+
--- /dev/null
+#!/bin/sh
+
+test_description='script create branch'
+
+. ./test-lib.sh
+
+export PATH=$PATH:../../scripts
+
+test_expect_success 'setup' '
+ echo "setup" >a &&
+ git add a &&
+ git commit -m "setup" &&
+ git clone ./. server &&
+ rm -fr server/.git/hooks &&
+ git remote add origin ./server &&
+ git config --add branch.master.remote origin &&
+ git config --add branch.master.merge refs/heads/master &&
+ git fetch
+
+ git checkout -b stable
+ git push origin stable
+'
+
+test_expect_success 'create branch clones stable' '
+ create-branch topic1
+ git branch | grep topic1
+ git branch -r | grep origin/topic1
+ git config --list | grep "branch.topic1.merge=refs/heads/topic1"
+'
+
+test_done
+