Junio C Hamano <gits...@pobox.com> writes:
> Junio C Hamano <gits...@pobox.com> writes:
>> Aaron Schrab <aa...@schrab.com> writes:
>>> Main changes since the initial version:
>>> * The first patch converts the existing hook callers to use the new
>>> find_hook() function.
>>> * Information about what is to be pushed is now sent over a pipe rather
>>> than passed as command-line parameters.
>>> Aaron Schrab (3):
>>> hooks: Add function to check if a hook exists
>>> push: Add support for pre-push hooks
>>> Add sample pre-push hook script
>> Getting much nicer. Thanks.
> Hmph, t5571 seems to be flaky in that it sometimes fails but passes
> when run again. Something timing dependent is going on???
With this patch applied, repeatedly try to
- make sure "foreign" ref does not exist; and
- attempt pushing the HEAD:foreign to create the "foreign" ref
until it fails, I can get it stop before the output scrolls off of
my 114 line terminal. Then when I revert the changes to transport.[ch]
and builtin/push.c in this series, the test will keep going.
Wait. The sample hook used in the test _is_ fed some input but it
exits without reading any. What happens when we fork it, and it
completes execution before we even have a chance to feed a single
byte? Wont' we get a sigpipe and die?
Yup, I think that is what is missing from run_pre_push_hook()
diff --git a/t/t5571-pre-push-hook.sh b/t/t5571-pre-push-hook.sh
index d68fed7..050318b 100755
@@ -16,8 +16,15 @@ test_expect_success 'setup' '
git init --bare repo1 &&
git remote add parent1 repo1 &&
test_commit one &&
- git push parent1 HEAD:foreign
+ while :
+ git push parent1 :refs/heads/foreign &&
+ git push parent1 HEAD:foreign || break
write_script "$HOOK" <<EOF
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html