diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-03-18 21:50:33 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-18 21:50:33 +0100 |
commit | 9befb340dde630c6766ae17b9a00250ec471c4ba (patch) | |
tree | c80523f16c0cfd1bb15fa836e2e5b67dd78e9764 /t | |
parent | Merge branch 'jk/repack-pack-keep-objects' (diff) | |
parent | push: detect local refspec errors early (diff) | |
download | git-9befb340dde630c6766ae17b9a00250ec471c4ba.tar.xz git-9befb340dde630c6766ae17b9a00250ec471c4ba.zip |
Merge branch 'jk/detect-push-typo-early'
Catch "git push $there no-such-branch" early.
* jk/detect-push-typo-early:
push: detect local refspec errors early
match_explicit_lhs: allow a "verify only" mode
match_explicit: hoist refspec lhs checks into their own function
Diffstat (limited to 't')
-rwxr-xr-x | t/t5529-push-errors.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/t/t5529-push-errors.sh b/t/t5529-push-errors.sh new file mode 100755 index 0000000000..9871307fd4 --- /dev/null +++ b/t/t5529-push-errors.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +test_description='detect some push errors early (before contacting remote)' +. ./test-lib.sh + +test_expect_success 'setup commits' ' + test_commit one +' + +test_expect_success 'setup remote' ' + git init --bare remote.git && + git remote add origin remote.git +' + +test_expect_success 'setup fake receive-pack' ' + FAKE_RP_ROOT=$(pwd) && + export FAKE_RP_ROOT && + write_script fake-rp <<-\EOF && + echo yes >"$FAKE_RP_ROOT"/rp-ran + exit 1 + EOF + git config remote.origin.receivepack "\"\$FAKE_RP_ROOT/fake-rp\"" +' + +test_expect_success 'detect missing branches early' ' + echo no >rp-ran && + echo no >expect && + test_must_fail git push origin missing && + test_cmp expect rp-ran +' + +test_expect_success 'detect missing sha1 expressions early' ' + echo no >rp-ran && + echo no >expect && + test_must_fail git push origin master~2:master && + test_cmp expect rp-ran +' + +test_expect_success 'detect ambiguous refs early' ' + git branch foo && + git tag foo && + echo no >rp-ran && + echo no >expect && + test_must_fail git push origin foo && + test_cmp expect rp-ran +' + +test_done |