Warum hat Git eine Teezeit?

102

In der Datei date.c im Git-Quellcode stelle ich die folgende Struktur spezieller Zeitnamen fest:

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

Ich verstehe den Nutzen (etwas) der meisten davon, aber warum sollte man eine "Tee" -Zeit haben (sie ergibt 17:00 Stunden)? Ist das nur eine Art Osterei ?

Jonah Bishop
quelle

Antworten:

65

Dieses Commit gibt Ihnen möglicherweise einen Hinweis darauf, warum es enthalten war: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Ich denke, es wurde ursprünglich als Scherz vorgeschlagen, aber tatsächlich implementiert, um die Fähigkeit der Benutzer zu demonstrieren, ihre eigenen benutzerdefinierten Zeit- / Datumsperioden einzuschließen:

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
quelle
2
Um ein neues benutzerdefiniertes Datum hinzuzufügen, müsste man Git mit seinen spezifischen Änderungen neu kompilieren? Oder gibt es einen Schritt nach dem Kompilieren, in dem man diese angeben kann?
Jonah Bishop
1
Ich bin nicht vertraut genug mit ungefähren und wie es funktioniert, um antworten zu können. Nach dem Mangel an Dokumentation zu urteilen, würde ich wahrscheinlich ja sagen - Sie müssten git neu kompilieren, um es zu unterstützen.
Axel
38
@ JonahBishop, wusstest du nicht? Sie können benutzerdefinierte Funktionen haben, wenn Sie die Quelle ändern und neu kompilieren ....
Paul Draper
1
@jhpratt Ich sehe hier kein Problem. Niemand hat versprochen, dass es einfach sein wird, Anpassungen, die Sie hinzugefügt haben, so einfach zu verwenden.
Atomosk
1
@jhpratt Build-Systeme machen so viel Spaß, gewöhnen Sie sich entweder daran oder lösen Sie das Problem und tragen Sie zum kostenlosen Open Source-Projekt bei.
Sergio Basurco