New branches should not get the update your local branch message.
authorStephen Haberman <stephen@exigencecorp.com>
Mon, 3 Nov 2008 21:23:35 +0000 (15:23 -0600)
committerStephen Haberman <stephen@exigencecorp.com>
Mon, 3 Nov 2008 21:23:35 +0000 (15:23 -0600)
server/update-ensure-follows
tests/t2700-server-ensure-follows.sh

index a3c6b92..65fb021 100644 (file)
@@ -53,7 +53,7 @@ for ((i = 0 ; i < count ; i++)) do
                        # If for some reason people are stupid and push with a --force flag,
                        # we should warn them to update first in case one of their teammates
                        # already merged for them
-                       if [ "$(git merge-base $oldrev $newrev)" != "$oldrev" ] ; then
+                       if [ "0000000000000000000000000000000000000000" != "$oldrev" -a "$(git merge-base $oldrev $newrev)" != "$oldrev" ] ; then
                                display_error_message "You need to update your local branch $short_refname"
                        else
                                display_error_message "You need to merge $follow into $short_refname"
index 0f9b8f9..514ca73 100644 (file)
@@ -135,5 +135,24 @@ test_expect_success 'excused branch with moved stable is okay' '
        git push origin topic2
 '
 
+test_expect_success 'new branch without stable gets nicer error' '
+       git checkout -b topic3 stable &&
+       echo "$test_name" >a.topic3 &&
+       git add a.topic3 &&
+       git commit -m "Change on topic3" &&
+
+       git checkout stable &&
+       echo "$test_name" >a &&
+       git commit -a -m "Change on stable" &&
+       git push origin stable &&
+
+       git checkout topic3 &&
+       ! git push origin topic3 2>push.err &&
+       grep "You need to merge stable into topic3" push.err &&
+
+       git merge stable &&
+       git push origin topic3
+'
+
 test_done