ทำไม Git ถึงมีช่วงเวลาน้ำชา?


102

ในไฟล์date.cในซอร์สโค้ดของ Git ฉันสังเกตโครงสร้างของชื่อเวลาพิเศษต่อไปนี้:

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

ฉันเข้าใจยูทิลิตี้ (ค่อนข้าง) ส่วนใหญ่ แต่ทำไมถึงมีเวลา "น้ำชา" (ประเมินเป็น 17:00 น.) นี่เป็นเพียงไข่อีสเตอร์แปลก ๆ หรือเปล่า?

คำตอบ:


65

การกระทำนี้อาจให้เบาะแสว่าเหตุใดจึงรวมอยู่: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

ฉันคิดว่าตอนแรกแนะนำเป็นเรื่องตลก แต่นำไปใช้จริงเพื่อแสดงให้เห็นถึงความสามารถของผู้ใช้ในการรวมช่วงเวลา / วันที่ที่กำหนดเอง:

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
ดังนั้นในการเพิ่มวันที่กำหนดเองใหม่เราจะต้องคอมไพล์ Git ใหม่ด้วยการเปลี่ยนแปลงเฉพาะหรือไม่? หรือมีขั้นตอนหลังการคอมไพล์ที่สามารถระบุสิ่งเหล่านี้ได้หรือไม่?
Jonah Bishop

1
ฉันไม่คุ้นเคยกับค่าประมาณและวิธีการทำงานเพื่อให้สามารถตอบได้ เมื่อพิจารณาจากการขาดเอกสารฉันอาจตอบว่าใช่คุณต้องคอมไพล์คอมไพล์ใหม่เพื่อรองรับ
Axel

38
@JonahBishop ไม่รู้เหรอ คุณสามารถมีคุณสมบัติที่กำหนดเองได้หากคุณปรับเปลี่ยนแหล่งที่มาและคอมไพล์ใหม่ ....
Paul Draper

1
@jhpratt ฉันไม่เห็นปัญหาที่นี่ ไม่มีใครสัญญาว่าจะใช้การปรับแต่งที่คุณเพิ่มได้อย่างง่ายดาย
Atomosk

1
ระบบสร้าง @jhpratt เป็นเรื่องสนุกแบบนั้นไม่ว่าจะคุ้นเคยกับมันหรือแก้ปัญหาและมีส่วนร่วมในโครงการโอเพ่นซอร์สฟรี
Sergio Basurco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.