Tại sao Git có một thời gian uống trà?


102

Trong tệp date.c trong mã nguồn của Git, tôi lưu ý cấu trúc sau của các tên thời gian đặc biệt:

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

Tôi hiểu công dụng (phần nào) của hầu hết những thứ này, nhưng tại sao lại có thời gian "uống trà" (nó đánh giá là 17:00 giờ)? Đây chỉ là một quả trứng Phục sinh thôi sao?

Câu trả lời:


65

Cam kết này có thể cung cấp cho bạn manh mối về lý do tại sao nó được bao gồm: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

Tôi nghĩ rằng ban đầu nó được đề xuất như một trò đùa, nhưng thực sự được triển khai để chứng minh khả năng cho người dùng bao gồm khoảng thời gian / ngày tùy chỉnh của họ:

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
Vì vậy, để thêm một ngày tùy chỉnh mới, liệu người ta có phải biên dịch lại Git với những thay đổi cụ thể của chúng không? Hoặc có một số bước sau biên dịch mà người ta có thể chỉ định chúng?
Jonah Bishop

1
Tôi không đủ quen thuộc với Approxidate và cách nó hoạt động để có thể trả lời. Đánh giá về việc thiếu tài liệu về nó, tôi có thể nói có - bạn cần phải biên dịch lại git để hỗ trợ nó.
Axel

38
@JonahBishop, bạn có biết không? Bạn có thể có tùy chỉnh các tính năng nếu bạn sửa đổi mã nguồn và biên dịch lại nó ....
Paul Draper

1
@jhpratt Tôi thấy không có vấn đề gì ở đây. Không ai hứa rằng sẽ dễ dàng sử dụng các tùy chỉnh bạn đã thêm một cách dễ dàng.
Atomosk

1
@jhpratt Hệ thống xây dựng rất thú vị, hoặc làm quen với nó hoặc giải quyết vấn đề và đóng góp cho dự án nguồn mở miễn phí.
Sergio Basurco
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.