]> git.droids-corp.org - git-central.git/commitdiff
Convert stable to update.
authorStephen Haberman <stephen@exigencecorp.com>
Tue, 24 Jun 2008 17:47:30 +0000 (12:47 -0500)
committerStephen Haberman <stephen@exigencecorp.com>
Tue, 24 Jun 2008 17:47:30 +0000 (12:47 -0500)
cbas/pre-receive
cbas/update
server/pre-receive-stable [deleted file]
server/pre-receive-stable-then-noop [deleted file]
server/update-stable [new file with mode: 0644]
tests/t2100-server-pre-receive-stable.sh [deleted file]
tests/t2100-server-update-stable.sh [new file with mode: 0644]
tests/t2101-server-pre-receive-stable-via-shim.sh [deleted file]

index 800f3668c41e75a842e70b9ca949af76a6bdaf18..a0684d809570ed69eac74686caed62f018cfc44a 100755 (executable)
@@ -6,6 +6,5 @@ while read newref oldref refname ; do
     input="$input$newref $oldref $refname$nl"
 done
 
-echo -n "$input" | sh /srv/git/hooks/server/pre-receive-only-one &&
-echo -n "$input" | sh /srv/git/hooks/server/pre-receive-stable
+echo -n "$input" | sh /srv/git/hooks/server/pre-receive-only-one
 
index baa1bdbb96f3312f77374d7996a83f63207fa646..885aff45a6f2034cdbd5743be210980797056a61 100755 (executable)
@@ -6,5 +6,6 @@ newrev="$3"
 
 sh /srv/git/hooks/server/update-trac "$refname" "$oldrev" "$newrev" &&
 sh /srv/git/hooks/server/update-allow-tags-branches "$refname" "$oldrev" "$newrev" &&
-sh /srv/git/hooks/server/update-prefer-rebase "$refname" "$oldrev" "$newrev"
+sh /srv/git/hooks/server/update-prefer-rebase "$refname" "$oldrev" "$newrev" &&
+sh /srv/git/hooks/server/update-stable "$refname" "$oldrev" "$newrev"
 
diff --git a/server/pre-receive-stable b/server/pre-receive-stable
deleted file mode 100644 (file)
index 7e2fd60..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-while read oldrev newrev refname ; do
-       if expr "$oldrev" : '0*$' >/dev/null ; then
-               exit 0
-       fi
-
-       if [ "$refname" != "refs/heads/stable" ] ; then
-               exit 0
-       fi
-
-       # read backwards:
-       # - all commits from old..new
-       # - unless they were already pointed to by a branch
-       # - unless that branch is us
-       # = all new commits on stable
-       count=$(git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --stdin $oldrev..$newrev | wc -l)
-       if [ "$count" -ne "0" ] ; then
-               newname=$(git rev-parse "$newrev")
-               echo "----------------------------------------------------"
-               echo
-               echo "Moving stable to $newname includes a new commit"
-               echo
-               echo "----------------------------------------------------"
-               exit 1
-       fi
-done
-
-
diff --git a/server/pre-receive-stable-then-noop b/server/pre-receive-stable-then-noop
deleted file mode 100644 (file)
index 5ed7e5c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-input=""
-while read line ; do
-    input="$input$line"
-done
-
-echo $input | sh $GIT_DIR/hooks/pre-receive-stable &&
-echo $input | sh $GIT_DIR/hooks/noop
-
diff --git a/server/update-stable b/server/update-stable
new file mode 100644 (file)
index 0000000..416495c
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+if expr "$oldrev" : '0*$' >/dev/null ; then
+       exit 0
+fi
+
+if [ "$refname" != "refs/heads/stable" ] ; then
+       exit 0
+fi
+
+# read backwards:
+# - all commits from old..new
+# - unless they were already pointed to by a branch
+# = all new commits on stable
+count=$(git rev-parse --not --branches | git rev-list --stdin $oldrev..$newrev | wc -l)
+if [ "$count" -ne "0" ] ; then
+       newname=$(git rev-parse "$newrev")
+       echo "----------------------------------------------------"
+       echo
+       echo "Moving stable to $newname includes a new commit"
+       echo
+       echo "----------------------------------------------------"
+       exit 1
+fi
+
+
diff --git a/tests/t2100-server-pre-receive-stable.sh b/tests/t2100-server-pre-receive-stable.sh
deleted file mode 100644 (file)
index 029f574..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-
-test_description='server pre-receive stable enforcer'
-
-. ./test-lib.sh
-
-test_expect_success 'setup' '
-       echo This is a test. >a &&
-       git add a &&
-       git commit -m "a" &&
-       git clone ./. server &&
-       rm -fr server/.git/hooks &&
-       git checkout -b stable &&
-       git remote add origin ./server &&
-       git push origin stable &&
-       git config --add branch.stable.remote origin &&
-       git config --add branch.stable.merge refs/heads/stable
-'
-
-# setup the pre-receive hook
-install_server_hook 'pre-receive-stable' 'pre-receive'
-
-test_expect_success 'reject commit directly to stable' '
-       echo $test_name >a &&
-       git commit -a -m "$test_name going onto stable" &&
-       head=$(git rev-parse HEAD) &&
-       ! git push 2>push.err &&
-       cat push.err | grep "Moving stable to $head includes a new commit" &&
-       git reset --hard HEAD^
-'
-
-test_expect_success 'reject aged topic branch' '
-       # make one topic branch
-       git checkout -b topic1 stable &&
-       echo $test_name >topic1 &&
-       git add topic1 &&
-       git commit -m "$test_name topic1" &&
-       git push origin topic1 &&
-
-       # now make another topic
-       git checkout -b topic2 stable
-       echo $test_name >topic2 &&
-       git add topic2 &&
-       git commit -m "$test_name topic2" &&
-       git push origin topic2 &&
-
-       # merge in topic2
-       git checkout stable &&
-       git merge topic2 &&
-       git push &&
-
-       # merge in topic1 fails
-       git merge topic1 &&
-       head=$(git rev-parse HEAD) &&
-       ! git push 2>push.err &&
-       cat push.err | grep "Moving stable to $head includes a new commit" &&
-       git reset --hard ORIG_HEAD
-'
-
-test_expect_success 'accept updated aged topic branch' '
-       # make one topic branch
-       git checkout -b topic3 stable &&
-       echo $test_name >topic3 &&
-       git add topic3 &&
-       git commit -m "$test_name topic3" &&
-       git push origin topic3 &&
-
-       # now make another topic
-       git checkout -b topic4 stable
-       echo $test_name >topic4 &&
-       git add topic4 &&
-       git commit -m "$test_name topic4" &&
-       git push origin topic4 &&
-
-       # merge in topic4
-       git checkout stable &&
-       git merge topic4 &&
-       git push &&
-
-       # update topic3 first
-       git checkout topic3 &&
-       git merge stable &&
-       git push &&
-
-       # Now we can update stable
-       git checkout stable &&
-       git merge topic3 &&
-       git push
-'
-
-test_done
-
diff --git a/tests/t2100-server-update-stable.sh b/tests/t2100-server-update-stable.sh
new file mode 100644 (file)
index 0000000..32dd039
--- /dev/null
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+test_description='server update stable enforcer'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+       echo This is a test. >a &&
+       git add a &&
+       git commit -m "a" &&
+       git clone ./. server &&
+       rm -fr server/.git/hooks &&
+       git checkout -b stable &&
+       git remote add origin ./server &&
+       git push origin stable &&
+       git config --add branch.stable.remote origin &&
+       git config --add branch.stable.merge refs/heads/stable
+'
+
+# setup the update hook
+install_server_hook 'update-stable' 'update'
+
+test_expect_success 'reject commit directly to stable' '
+       echo $test_name >a &&
+       git commit -a -m "$test_name going onto stable" &&
+       head=$(git rev-parse HEAD) &&
+       ! git push 2>push.err &&
+       cat push.err | grep "Moving stable to $head includes a new commit" &&
+       git reset --hard HEAD^
+'
+
+test_expect_success 'reject aged topic branch' '
+       # make one topic branch
+       git checkout -b topic1 stable &&
+       echo $test_name >topic1 &&
+       git add topic1 &&
+       git commit -m "$test_name topic1" &&
+       git push origin topic1 &&
+
+       # now make another topic
+       git checkout -b topic2 stable
+       echo $test_name >topic2 &&
+       git add topic2 &&
+       git commit -m "$test_name topic2" &&
+       git push origin topic2 &&
+
+       # merge in topic2
+       git checkout stable &&
+       git merge topic2 &&
+       git push &&
+
+       # merge in topic1 fails
+       git merge topic1 &&
+       head=$(git rev-parse HEAD) &&
+       ! git push 2>push.err &&
+       cat push.err | grep "Moving stable to $head includes a new commit" &&
+       git reset --hard ORIG_HEAD
+'
+
+test_expect_success 'accept updated aged topic branch' '
+       # make one topic branch
+       git checkout -b topic3 stable &&
+       echo $test_name >topic3 &&
+       git add topic3 &&
+       git commit -m "$test_name topic3" &&
+       git push origin topic3 &&
+
+       # now make another topic
+       git checkout -b topic4 stable
+       echo $test_name >topic4 &&
+       git add topic4 &&
+       git commit -m "$test_name topic4" &&
+       git push origin topic4 &&
+
+       # merge in topic4
+       git checkout stable &&
+       git merge topic4 &&
+       git push &&
+
+       # update topic3 first
+       git checkout topic3 &&
+       git merge stable &&
+       git push &&
+
+       # Now we can update stable
+       git checkout stable &&
+       git merge topic3 &&
+       git push
+'
+
+test_done
+
diff --git a/tests/t2101-server-pre-receive-stable-via-shim.sh b/tests/t2101-server-pre-receive-stable-via-shim.sh
deleted file mode 100644 (file)
index a457aed..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-test_description='server pre-receive stable enforcer'
-
-. ./test-lib.sh
-
-test_expect_success 'setup' '
-       echo This is a test. >a &&
-       git add a &&
-       git commit -m "a" &&
-       git clone ./. server &&
-       rm -fr server/.git/hooks &&
-       git checkout -b stable &&
-       git remote add origin ./server &&
-       git push origin stable &&
-       git config --add branch.stable.remote origin &&
-       git config --add branch.stable.merge refs/heads/stable
-'
-
-# setup the pre-receive hook
-install_server_hook 'pre-receive-stable' 'pre-receive-stable'
-install_server_hook 'noop' 'noop'
-install_server_hook 'pre-receive-stable-then-noop' 'pre-receive'
-
-test_expect_success 'reject commit directly to stable' '
-       echo $test_name >a &&
-       git commit -a -m "$test_name going onto stable" &&
-       head=$(git rev-parse HEAD) &&
-       ! git push 2>push.err &&
-       cat push.err | grep "Moving stable to $head includes a new commit"
-'
-
-test_done
-