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

2017-07-21 Thread Uwe Hausbrand
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 :
> Uwe Hausbrand  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.


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

2017-07-21 Thread Uwe Hausbrand
Hi all,

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"
git gc

results in:

Counting objects: 158790, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (26849/26849), done.
Writing objects: 100% (158790/158790), done.
Total 158790 (delta 116114), reused 158790 (delta 116114)
fatal: bad numeric config value '60 days' for 'gc.rerereresolved': invalid unit
error: failed to run rerere

git --version = git version 2.13.0

Best regards,

Uwe


pre-rebase, post-rewrite, ...

2016-11-11 Thread Uwe Hausbrand
Hi all,

I am using the pre-rebase hook to generate a tag. I am using this tag
to check if my rebase lost any commits or content when i'm cleaning up
my local commit history.
What i now want to do is using a post-rebase hook to make a diff check
and remove my generated tag in case there is no difference.

I use the post-rewrite hook to make this check, but this only triggers
in case of a rewrite happening (which is understandable). But the
pre-rebase hook triggers on every git rebase call and so i generate
tags which could be removed automatically.

Is there any other hook i could use or why is there no post-rebase hook?

An older post mentions ( http://marc.info/?l=git&m=120796177421283&w=2
) point 5 which i think applies to my problem, but as i can't alias
real git commands (which is ok) i would need to use a new command.

Best regards,
Uwe