101 votes

Pourquoi Git a une heure de thé ?

Dans le date.c dans le code source de Git, je note la structure suivante des noms de temps spéciaux :

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

Je comprends (un peu) l'utilité de la plupart d'entre eux, mais pourquoi avoir une heure de "thé" (elle est évaluée à 17 heures) ? S'agit-il simplement d'une Œuf de Pâques en quelque sorte ?

65voto

Axel Points 10085

Ce commit peut vous donner un indice sur la raison pour laquelle il a été inclus : https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Je pense qu'il a été suggéré au départ comme une blague, mais qu'il a en fait été mis en œuvre pour démontrer la possibilité pour les utilisateurs d'inclure leurs propres périodes de temps/date personnalisées :

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 votes

Donc, pour ajouter une nouvelle date personnalisée, il faudrait recompiler Git avec les changements spécifiques ? Ou y a-t-il une étape post-compilation où l'on peut les spécifier ?

1 votes

Je ne suis pas assez familier avec approxidate et son fonctionnement pour pouvoir répondre. À en juger par le manque de documentation à son sujet, je dirais probablement que oui - vous devrez recompiler git pour le prendre en charge.

38 votes

@JonahBishop, vous ne saviez pas ? Vous pouvez avoir des fonctionnalités personnalisées si vous modifiez la source et la recompilez.....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X