2013-04-10 4 views
15

वी 3 एपीआई रेपोस लिए देख रहे हैं (प्राप्त/रेपोस /: मालिक /: रेपो) हम 3 datetime है:गिटहब एपीआई वी 3: push_at और update_at के बीच क्या अंतर है?

"pushed_at": "2011-01-26T19:06:43Z", 
    "created_at": "2011-01-26T19:01:12Z", 
    "updated_at": "2011-01-26T19:14:43Z", 

एक तेजी से उदाहरण के लिए सिर्फ इस https://api.github.com/repos/twitter/bootstrap

लिंक करने से क्या pushed_at और बीच का अंतर है update_at?

उत्तर

20

अद्यतन: व्यवहार नीचे वर्णित इरादा नहीं था। pushed_at किसी भी समय किसी भी भंडार की शाखाओं में किसी भी प्रतिबद्धता को धक्का दिया जाएगा। updated_at किसी भी समय भंडार ऑब्जेक्ट अपडेट होने पर अपडेट किया जाएगा, उदा। जब भंडार का विवरण या प्राथमिक भाषा अद्यतन की जाती है। यह आवश्यक नहीं है कि एक पुश updated_at विशेषता को अपडेट करेगा - यह तब होगा जब कोई पुश रिपोजिटरी ऑब्जेक्ट को अपडेट ट्रिगर करता है। उदाहरण के लिए, यदि रिपॉजिटरी की प्राथमिक भाषा पायथन थी, और फिर आपने बहुत सारे जावास्क्रिप्ट कोड को धक्का दिया - जो प्राथमिक भाषा को जावास्क्रिप्ट में बदल सकता है, जो रिपोजिटरी ऑब्जेक्ट की language विशेषता अद्यतन करता है और बदले में updated_at विशेषता अद्यतन करता है। पहले, प्राथमिक धक्का प्रत्येक धक्का के बाद अद्यतन हो रहा था, भले ही यह नहीं बदला (जो इरादा नहीं था), इसलिए यह updated_at पर एक अद्यतन ट्रिगर हुआ।


अंतर यह है कि pushed_at, की तारीख और समय का प्रतिनिधित्व करता है पिछले प्रतिबद्ध जबकि updated_atअंतिम परिवर्तन भंडार की तारीख और समय का प्रतिनिधित्व करता है। भंडार में एक बदलाव एक प्रतिबद्धता हो सकता है, लेकिन यह अन्य चीजें भी हो सकती है, जैसे रेपो का विवरण बदलना, विकी पेज बनाना आदि। दूसरे शब्दों में, यह अपडेट अपडेट का सबसेट होता है, और pushed_at टाइमस्टैम्प इसलिए होगा या तो updated_at टाइमस्टैम्प के समान हो, या यह पहले का टाइमस्टैम्प होगा।

+0

महान स्पष्टीकरण धन्यवाद इवान –

+1

यह ध्यान देने योग्य है कि ये मान पूरे भंडार पर लागू होते हैं। यदि कोई लेखक अपडेट उनकी "देव" शाखा कहता है तो यह "update_at" विशेषता को अपडेट करेगा, भले ही डिफ़ॉल्ट_ब्रैंच (आमतौर पर मास्टर) को धक्का नहीं दिया गया हो। – braitsch

संबंधित मुद्दे