Perché Git ha l'ora del tè?


102

Nel file date.c nel codice sorgente di Git, noto la seguente struttura di nomi di orari speciali:

static const struct special {
    const char *name;
    void (*fn)(struct tm *, struct tm *, int *);
} special[] = {
    { "yesterday", date_yesterday },
    { "noon", date_noon },
    { "midnight", date_midnight },
    { "tea", date_tea },
    { "PM", date_pm },
    { "AM", date_am },
    { "never", date_never },
    { "now", date_now },
    { NULL }
};

Capisco l'utilità (un po ') della maggior parte di questi, ma perché avere un "tea time" (valuta le 17:00)? È solo una sorta di uovo di Pasqua ?

Risposte:


65

Questo commit potrebbe darti un'idea del motivo per cui è stato incluso: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Penso che sia stato suggerito inizialmente come uno scherzo, ma in realtà implementato per dimostrare la capacità degli utenti di includere i propri periodi di data / ora personalizzati:

On Fri, 18 Nov 2005, David Roundy wrote:
> Don't forget "high noon"!  (and perhaps "tea time"?)  :)


Done.

    [torvalds@g5 git]$ ./test-date "now" "midnight" "high noon" "tea-time"
    now -> bad -> Wed Dec 31 16:00:00 1969
    now -> Fri Nov 18 08:50:54 2005

    midnight -> bad -> Wed Dec 31 16:00:00 1969
    midnight -> Fri Nov 18 00:00:00 2005

    high noon -> bad -> Wed Dec 31 16:00:00 1969
    high noon -> Thu Nov 17 12:00:00 2005

    tea-time -> bad -> Wed Dec 31 16:00:00 1969
    tea-time -> Thu Nov 17 17:00:00 2005

Thanks for pointing out tea-time.

This is also written to easily extended to allow people to add their own
important dates like Christmas and their own birthdays.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

2
Quindi, per aggiungere una nuova data personalizzata, sarebbe necessario ricompilare Git con le loro modifiche specifiche? O c'è qualche passaggio di post-compilazione in cui è possibile specificarli?
Jonah Bishop

1
Non ho abbastanza familiarità con approxidate e come funziona per essere in grado di rispondere. A giudicare dalla mancanza di documentazione, probabilmente direi di sì: dovresti ricompilare git per supportarlo.
Axel

38
@ JonahBishop, non lo sapevi? Puoi avere funzioni personalizzate se modifichi il sorgente e lo ricompili ....
Paul Draper

1
@ jhpratt Non vedo alcun problema qui. Nessuno ha promesso che sarà facile usare le personalizzazioni che hai aggiunto così facilmente.
Atomosk

1
I sistemi di build @jhpratt sono divertenti così, o ci si abitua o risolvono il problema e contribuiscono al progetto open source gratuito.
Sergio Basurco
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.