¿Por qué Git tiene la hora del té?

102

En el archivo date.c en el código fuente de Git, observo la siguiente estructura de nombres de tiempo especiales:

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 }
};

Entiendo la utilidad (algo) de la mayoría de estos, pero ¿por qué tener una hora de "té" (evalúa a las 17:00 horas)? ¿Es esto solo una especie de huevo de Pascua ?

Jonás obispo
fuente

Respuestas:

65

Este compromiso podría darle una pista de por qué se incluyó: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Creo que se sugirió inicialmente como una broma, pero en realidad se implementó para demostrar la capacidad de los usuarios para incluir sus propios períodos de fecha / hora personalizados:

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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
Axel
fuente
2
Entonces, para agregar una nueva fecha personalizada, ¿habría que recompilar Git con sus cambios específicos? ¿O hay algún paso posterior a la compilación donde se pueden especificar?
Jonah Bishop
1
No estoy lo suficientemente familiarizado con Approxidate y cómo funciona para poder responder. A juzgar por la falta de documentación al respecto, probablemente diría que sí: necesitaría volver a compilar git para admitirlo.
Axel
38
@JonahBishop, ¿no lo sabías? Puede tener características personalizadas si modifica la fuente y la vuelve a compilar ....
Paul Draper
1
@jhpratt No veo ningún problema aquí. Nadie prometió que será fácil usar las personalizaciones que ha agregado tan fácilmente.
Atomosk
1
Los sistemas de compilación de @jhpratt son divertidos así, ya sea que se acostumbre o resuelva el problema y contribuya al proyecto de código abierto gratuito.
Sergio Basurco