Dlaczego Git ma czas na herbatę?


102

W pliku date.c w kodzie źródłowym Gita zwracam uwagę na następującą strukturę specjalnych nazw czasu:

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

Rozumiem (w pewnym stopniu) użyteczność większości z nich, ale po co mieć czas na herbatę (szacuje się na 17:00)? Czy to tylko rodzaj jajka wielkanocnego ?

Odpowiedzi:


65

To zatwierdzenie może dać ci wskazówkę, dlaczego zostało uwzględnione: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Myślę, że początkowo zasugerowano to jako żart, ale w rzeczywistości wdrożono, aby zademonstrować użytkownikom możliwość uwzględniania własnych niestandardowych okresów czasu / daty:

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
Czy zatem, aby dodać nową niestandardową datę, należałoby ponownie skompilować Git z ich określonymi zmianami? Czy jest jakiś krok po kompilacji, w którym można je określić?
Jonah Bishop

1
Nie jestem wystarczająco zaznajomiony z przybliżeniem i jak to działa, aby móc odpowiedzieć. Sądząc po braku dokumentacji, prawdopodobnie powiedziałbym tak - musiałbyś ponownie skompilować git, aby go obsługiwał.
Axel,

38
@JonahBishop, nie wiedziałeś? Możesz mieć niestandardowe funkcje, jeśli zmodyfikujesz źródło i skompilujesz je ponownie ...
Paul Draper,

1
@jhpratt Nie widzę tutaj problemu. Nikt nie obiecał, że korzystanie z dostosowań, które dodałeś tak łatwo będzie łatwe.
Atomosk,

1
Systemy @jhpratt Build są tak zabawne, albo przyzwyczaj się do tego, albo rozwiąż problem i weź udział w darmowym projekcie open source.
Sergio Basurco
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.