t5516: test update of local refs on push
authorJeff King <peff@peff.net>
Thu, 18 Oct 2007 06:17:46 +0000 (02:17 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Thu, 18 Oct 2007 07:46:00 +0000 (03:46 -0400)
The first test (updating local refs) should succeed without the
prior commit, but the second one (not updating on error) used to
fail before the prior commit was written.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
t/t5516-fetch-push.sh

index 4fbd5b1f473578ac5a1ac61a87883015c04fdc63..86f9b5346a0d7d8807d8c37c063690540873813a 100755 (executable)
@@ -254,4 +254,32 @@ test_expect_success 'push with dry-run' '
        check_push_result $old_commit heads/master
 '
 
+test_expect_success 'push updates local refs' '
+
+       rm -rf parent child &&
+       mkdir parent && cd parent && git init &&
+               echo one >foo && git add foo && git commit -m one &&
+       cd .. &&
+       git clone parent child && cd child &&
+               echo two >foo && git commit -a -m two &&
+               git push &&
+       test $(git rev-parse master) = $(git rev-parse remotes/origin/master)
+
+'
+
+test_expect_success 'push does not update local refs on failure' '
+
+       rm -rf parent child &&
+       mkdir parent && cd parent && git init &&
+               echo one >foo && git add foo && git commit -m one &&
+               echo exit 1 >.git/hooks/pre-receive &&
+               chmod +x .git/hooks/pre-receive &&
+       cd .. &&
+       git clone parent child && cd child &&
+               echo two >foo && git commit -a -m two || exit 1
+               git push && exit 1
+       test $(git rev-parse master) != $(git rev-parse remotes/origin/master)
+
+'
+
 test_done