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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux