`git push --porcelain` has no effect when deleting a ref which does not exist

Xavier Morel <[email protected]> Wed, 5 Aug 2026 09:19:13 +0200
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
Using `push --delete --porcelain` with refs which are extant correctly 
outputs the relevant information in the documented format:

-	:refs/heads/<branch1>	[deleted]
-	:refs/heads/<branch2>	[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 '<branch1>': remote ref does not exist
error: unable to delete '<branch2>': remote ref does not exist

I would have expected something along the lines of:

!	:refs/heads/<branch>	[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?