-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
send-pack: assign remote errors to each ref
This lets us show remote errors (e.g., a denied hook) along with the usual push output. There is a slightly clever optimization in receive_status that bears explanation. We need to correlate the returned status and our ref objects, which naively could be an O(m*n) operation. However, since the current implementation of receive-pack returns the errors to us in the same order that we sent them, we optimistically look for the next ref to be looked up to come after the last one we have found. So it should be an O(m+n) merge if the receive-pack behavior holds, but we fall back to a correct but slower behavior if it should change. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Jeff King
authored and
Junio C Hamano
committed
Nov 17, 2007
1 parent
1f0e2a1
commit ca74c45
Showing
3 changed files
with
71 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/bin/sh | ||
|
||
test_description='remote push rejects are reported by client' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success 'setup' ' | ||
mkdir .git/hooks && | ||
(echo "#!/bin/sh" ; echo "exit 1") >.git/hooks/update && | ||
chmod +x .git/hooks/update && | ||
echo 1 >file && | ||
git add file && | ||
git commit -m 1 && | ||
git clone . child && | ||
cd child && | ||
echo 2 >file && | ||
git commit -a -m 2 | ||
' | ||
|
||
test_expect_success 'push reports error' '! git push 2>stderr' | ||
|
||
test_expect_success 'individual ref reports error' 'grep rejected stderr' | ||
|
||
test_done |