git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: fatal: bad numeric config value '60 days' for 'gc.rerereresolved': invalid unit

From
Uwe Hausbrand <uwe.hausbrand@gmx.de>
Date
Jul 21, 2017, 17:35 UTC
Message-ID
<CAHNyMp-oXPDjQ1960mKiSdvvDZc5b85z2Cc9pRvs8QQSfprp=A@mail.gmail.com>
In-Reply-To
<xmqqfudpj1vo.fsf@gitster.mtv.corp.google.com>

Yeah, after I checked the code I saw that this is interpreted as integer and fixed my configuration

2017-07-21 16:33 GMT+02:00 Junio C Hamano <gitster@pobox.com>:
Show 48 quoted lines
> Uwe Hausbrand <uwe.hausbrand@gmx.de> writes:
>
>> seems like there is a bug with "git rerere gc" not understanding grace
>> periods like "60 days" defined in the config.
>>
>> What I did:
>>
>> git config gc.rerereresolved "60 days"
>
> Let's see how the variable is explained in the documentation.
>
>     gc.rerereResolved::
>             Records of conflicted merge you resolved earlier are
>             kept for this many days when 'git rerere gc' is run.
>             The default is 60 days.  See linkgit:git-rerere[1].
>
> Notice that "for this many days" tries to (and probably
> unsuccessfully) tell you that this variable is expected to be set to
> an integer [*1*], counted in "days".  IOW, you'd want "60" instead.
>
> Having said that, it may not be a bad idea to enumerate these
> "expected to be an integer that counts in some unit" variables that
> are described in a similar way (i.e. look for "this many" in
> Documentation/config.txt), and then for each of them that could be
> counted in different unit (e.g. it is not outrageously wrong to
> expect that you could specify that rerere records that are older
> than 3 months are expired):
>
>  - decide what kind of quantity the variable specifies (e.g. "this
>    many days" and "this many seconds" variables are giving a
>    "timeperiod").
>
>  - keep the code that reacts to an integer without any unit to
>    behave the same (e.g. "[gc] rerereresolved = 30" will keep
>    meaning "30 days");
>
>  - extend the code so that when the value given is not an integer,
>    it tries to parse it as a specification for the expected quantity
>    (e.g. "this many days" and "this many seconds" variables would
>    understand if you said "60 days" or "2 months")
>
>
> [Footnote]
>
>  *1* I think we actually expect a scaled integer whenever we expect
>      an integral value, so you probably could say "6k" to specify
>      "6,000 days"; "days" not being any of the recognised unit
>      suffix like k, M, G, etc. is where "invalid unit" comes from.
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 16 in “fatal: bad numeric config value '60 days' for 'gc.rerereresolved': invalid unit”
  1. Uwe HausbrandJul 21, 2017
  2. Martin ÅgrenJul 21, 2017
  3. Junio C HamanoJul 21, 2017
  4. Uwe HausbrandJul 21, 2017
  5. 0/2 accept non-integer for "this many days" expiry specificationJunio C Hamano, Aug 19, 2017
  6. 2/2 rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolvedJunio C Hamano, Aug 19, 2017
  7. Ramsay JonesAug 20, 2017
  8. Junio C HamanoAug 21, 2017
  9. 1/2 rerere: represent time duration in timestamp_t internallyJunio C Hamano, Aug 19, 2017
  10. 0/6 accept non-integer for "this many days" expiry specificationJunio C Hamano, Aug 22, 2017
  11. 1/6 t4200: give us a clean slate after "rerere gc" testsJunio C Hamano, Aug 22, 2017
  12. 3/6 t4200: gather "rerere gc" togetherJunio C Hamano, Aug 22, 2017
  13. 2/6 t4200: make "rerere gc" test more robustJunio C Hamano, Aug 22, 2017
  14. 4/6 t4200: parameterize "rerere gc" custom expiry testJunio C Hamano, Aug 22, 2017
  15. 5/6 rerere: represent time duration in timestamp_t internallyJunio C Hamano, Aug 22, 2017
  16. 6/6 rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolvedJunio C Hamano, Aug 22, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.