Re: [PATCH v4] gc: call "prune --expire 2.weeks.ago" by default
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 12, 2008, 22:50 UTC
- Message-ID
- <alpine.LSU.1.00.0803122348210.1656@racer.site>
- In-Reply-To
- <7vwso74p33.fsf@gitster.siamese.dyndns.org>
Hi,
On Wed, 12 Mar 2008, Junio C Hamano wrote:
Show 16 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > ---prune:: > > I am fairly paranoid about end users wondering about what is described in > ancient documentation and complaining that we do not talk about it > anymore. I am tempted to suggest: > > This is a no-op but you may see it mentioned in older docs and > scripts. Older git-gc never ran 'prune' without being told, and > this option was a way to tell it to. > > but this would lead to littering the documentation with too much > historical information in the long run. I dunno. I am inclined to > favor the removal as your patch did, but somebody else may have clever > ideas.
Well, if you want to, I am quite willing to adapt the patch. (I care enough about the real issue, namely that "prune" should be called automatically.)
Show 17 quoted lines
> > + if (!strcmp(var, "gc.pruneexpire")) {
> > + if (!value)
> > + return config_error_nonbool(var);
> > + if (strcmp(value, "now") &&
> > + approxidate(value) - approxidate("now") >= 0)
> > + return error("Invalid gc.pruneExpire: '%s'", value);
>
> Yuck; approxidate() returns ulong. Can subtracting a ulong from another
> ever go negative?
>
> Besides, because there is no guarantee of the order of evaluation between
> these two approxidate() calls, you may get +1 or -1 on the second boundary.
>
> I think the reason why you did not catch it in your test is because your
> tests are half complete; they test only what you wanted to catch
> (misconfigured case) and do not test the other half (properly working
> case).Yes, probably. Of course, comparing a difference to 0 is absolutely moronic.
I should have written
approxidate(value) >= approxidate("now"))in the first place.
So, could you tell me, please, if I should resend the patch with your --prune documentation, or without?
Ciao, Dscho