Thread (2 messages) 2 messages, 2 authors, 2022-08-25

Re: [BUG] git config --unset is not idempotent

From: Jeff King <hidden>
Date: 2022-08-25 09:41:03

On Thu, Aug 25, 2022 at 10:52:16AM +0200, Arturo Seijas Fernandez wrote:
The command "git config --unset [option]" is not idempotent. It is
currently returning a success  code when the property had already been
set and a 5 error code otherwise.

I would expect the error code to be set according to the current state
when compared to the target state, regardless of the previous state of
the option.
You can get what you want in the shell with:

  # passes "set -e", but could also be used in an "if"
  git config --unset ... || test $? = 5

That's obviously not as convenient. The flip side is that returning 0
would make it very hard for callers to tell if they removed something
(if they care).

If we were designing the tool now, I could definitely see an argument
for returning 0 in this case. But we have over a decade with the "5"
exit code documented for a plumbing tool. We won't change it now without
a good reason and without a deprecation schedule, and IMHO this doesn't
rise to that level.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help