Pang Yan Han 160b81ed81 receive-pack: don't pass non-existent refs to post-{receive,update} hooks
When a push specifies deletion of non-existent refs, the post post-receive and
post-update hooks receive them as input/arguments.

For instance, for the following push, where refs/heads/nonexistent is a ref
which does not exist on the remote side:

	git push origin :refs/heads/nonexistent

the post-receive hook receives from standard input:

	<null-sha1> SP <null-sha1> SP refs/heads/nonexistent

and the post-update hook receives as arguments:

	refs/heads/nonexistent

which does not make sense since it is a no-op.

Teach receive-pack not to pass non-existent refs to the post-receive and
post-update hooks. If the push only attempts to delete non-existent refs,
these hooks are not even called.

The update and pre-receive hooks are still notified about attempted
deletion of non-existent refs to give them a chance to inspect the
situation and act on it.

[jc: mild fix-ups to avoid introducing an extra list; also added fixes to
some tests]

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-30 12:18:46 -07:00
..
2011-06-20 14:27:36 -07:00
2011-08-04 15:57:18 -07:00
2011-08-28 21:20:28 -07:00
2011-08-28 21:19:16 -07:00
2011-08-28 21:22:58 -07:00
2011-08-28 21:19:16 -07:00
2011-09-12 11:43:58 -07:00
2011-08-28 21:19:16 -07:00
2011-08-25 16:00:07 -07:00
2011-05-31 12:19:11 -07:00
2011-05-31 12:19:11 -07:00
2011-08-25 14:42:11 -07:00