t5541-http-push.sh: add tests for non-fast-forward pushes
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tay Ray Chuan committed
Jan 8, 2010 at 10:12 UTC
1945237486851bc3a0c6d65eaeb21cb22cac2ea1
1 file changed
+23
t/t5541-http-push.sh
+23
@@ -88,5 +88,28 @@ test_expect_success 'used receive-pack service' '
88
test_cmp exp act
89
'
90
91
+test_expect_success 'non-fast-forward push fails' '
92
+ cd "$ROOT_PATH"/test_repo_clone &&
93
+ git checkout master &&
94
+ echo "changed" > path2 &&
95
+ git commit -a -m path2 --amend &&
96
+
97
+ HEAD=$(git rev-parse --verify HEAD) &&
98
+ !(git push -v origin >output 2>&1) &&
99
+ (cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
100
+ test $HEAD != $(git rev-parse --verify HEAD))
101
+'
102
+
103
+test_expect_failure 'non-fast-forward push show ref status' '
104
+ grep "^ ! \[rejected\][ ]*master -> master (non-fast-forward)$" output
105
+'
106
+
107
+test_expect_failure 'non-fast-forward push shows help message' '
108
+ grep \
109
+"To prevent you from losing history, non-fast-forward updates were rejected
110
+Merge the remote changes before pushing again. See the '"'non-fast-forward'"'
111
+section of '"'git push --help'"' for details." output
112
+'
113
+
114
stop_httpd
115
test_done