threads / discuss / 28467

deleting non-existent ref via push

Subject: deleting non-existent ref via push

## tl;dr

3 messages between Sep 23, 2011 and Sep 24, 2011.

replies: 2people: 2as markdown or json

Sitaram Chamarty· Sep 23, 2011, 05:04 UTC · lore
Hello,

Pushing to delete a non-existent ref (git push origin :refs/heads/foo) works without error, except for a warning that the remote is "Allowing deletion of corrupt ref". By "works" I mean all hooks are also executed.

Is this expected/supported behaviour? Can I rely on it continuing to work, especially in terms of executing hooks.

Seem like a great way to "poke" a remote repo into executing hooks without having to make a dummy change and push :-)

-- 
Sitaram
Junio C Hamano· Sep 23, 2011, 18:16 UTC · re: Sitaram Chamarty · lore

Re: deleting non-existent ref via push

Sitaram Chamarty <sitaramc@gmail.com> writes:
Show 7 quoted lines
> Pushing to delete a non-existent ref (git push origin :refs/heads/foo)
> works without error, except for a warning that the remote is "Allowing
> deletion of corrupt ref".  By "works" I mean all hooks are also
> executed.
>
> Is this expected/supported behaviour?  Can I rely on it continuing to
> work, especially in terms of executing hooks.

This most definitely is just "we didn't bother checking the error too carefully, especially because the result of deleting something that did not exist in the first place is a no-op; anybody who tries to delete a non-existing thing is a moron and deserves whatever random result he gets".

It would be a good idea to tighten it.
Sitaram Chamarty· Sep 24, 2011, 03:11 UTC · re: Junio C Hamano · lore

Re: deleting non-existent ref via push

On Fri, Sep 23, 2011 at 11:46 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> Sitaram Chamarty <sitaramc@gmail.com> writes:
>
>> Pushing to delete a non-existent ref (git push origin :refs/heads/foo)
>> works without error, except for a warning that the remote is "Allowing
>> deletion of corrupt ref".  By "works" I mean all hooks are also
>> executed.
>>
>> Is this expected/supported behaviour?  Can I rely on it continuing to
>> work, especially in terms of executing hooks.
>
> This most definitely is just "we didn't bother checking the error too
> carefully, especially because the result of deleting something that did
> not exist in the first place is a no-op; anybody who tries to delete a
> non-existing thing is a moron and deserves whatever random result he

I'd better hide behind the fact that I am only doing it for the side-effect then ;-)

> gets".
>
> It would be a good idea to tighten it.
Thanks.  I just needed to know if I could rely on it long-term or not.
 I'll find some other way to "poke" a remote repo to run the hooks.

← back to recent threads