From: Junio C Hamano Date: Wed, 05 Aug 2026 16:30:14 GMT Subject: Re: `git push --porcelain` has no effect when deleting a ref which does not exist Message-ID: In-Reply-To: <27d95520-409e-4d1b-b8b1-37a910bff604@odoo.com> Xavier Morel writes: > Using `push --delete --porcelain` with refs which are extant correctly > outputs the relevant information in the documented format: > > - :refs/heads/ [deleted] > - :refs/heads/ [deleted] > > However doing the same with refs which don't exist on the remote (e.g. > because of a concurrent deletion) has the error written out in > human-targeted text: > > error: unable to delete '': remote ref does not exist > error: unable to delete '': remote ref does not exist > > I would have expected something along the lines of: > > ! :refs/heads/ [remote failure] > > which would be machine-readable as documented for the `--porcelain` > flag. Was that intended or is it just something that fell through the > cracks of code convolution? If I have to guess, I would say it is because nobody thought of covering this usage pattern, which allows you to randomly throw a deletion request to probe what does and what does not exist on the other side. Patches welcome. Thanks.