2011-02-23 5 views
6

संपादित: सारांश: Git की अनुमति नहीं है तारीख से पहले 1973/03/03 09:46:40 (युग + 100000000s) ने अपने "आंतरिक दिनांक स्वरूप" (अवधि के बाद सेकंड) में दी गई। यह "20110224" को "2011-02-24" के संक्षिप्त रूप के रूप में अनुमति देने के लिए है। - यह कोई बग नहीं है: वास्तव में नहीं, लेकिन यह भी दस्तावेज नहीं है। - वर्कअराउंड: गिट आंतरिक तिथि पर भरोसा न करें जब आप नहीं कर सकते। - के लिए धन्यवाद: हॉब्स

हाय सब,

मैं Git फिल्टर शाखा के साथ कुछ मुद्दों है कि मैं Git प्रतिबद्ध-वृक्ष के नीचे पर नज़र रखी है की है। - विवरण के लिए Git-लिखें-वृक्ष की मैनपेज देखते हैं - 1970-01-01 को

#!/bin/bash 
# please run these commands in an empty directory 
# (should not destroy an existing repo, though. I think it would only 
# a few dangling objects) 

set -e -o pipefail 

git init 
tree=$(git write-tree) 
commit=$(echo "my first commit -- the tree is empty" | 
    env GIT_AUTHOR_DATE="0 +0000" git commit-tree $tree) 

echo "This is commit $commit:" 
git cat-file commit $commit 

ध्यान दें कि env GIT_AUTHOR_DATE="0 +0000" सेट "Git आंतरिक प्रारूप" का उपयोग कर की तारीख: इस स्क्रिप्ट पर विचार करें।

लेकिन इस स्क्रिप्ट का आउटपुट (कच्चे प्रतिबद्ध)

tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 
author Jane Doe <jane> 1298477214 +0100 
committer Jane Doe <jane> 1298477214 +0100 

my first commit -- the tree is empty 

अब क्यों Git अनदेखी कर रहा है $ GIT_AUTHOR_DATE है? यदि यह महत्व का है, तो मेरा git --versiongit version 1.7.1 देता है।

उत्तर

19

Git तारीख पार्सर कोड में मिला:

/* 
* Seconds since 1970? We trigger on that for any numbers with 
* more than 8 digits. This is because we don't want to rule out 
* numbers like 20070606 as a YYYYMMDD date. 
*/ 
if (num >= 100000000 && nodate(tm)) { 

के बाद से है कि कोड को स्पष्ट रूप से संभव यूनिक्स दिनांक के रूप में कम संख्या को खारिज कर दिया, और स्ट्रिंग किसी अन्य तिथि प्रारूप की तरह पार्स नहीं करता है, GIT_AUTHOR_DATE अमान्य के रूप में व्यवहार किया जाता है और पूरी तरह से अनदेखा (और स्पष्ट रूप से, चुपचाप)।

आपका विधि प्रतिबद्ध है कि 1973 के बाद जगह ले ली synthesizing करने के लिए जब तक आप छड़ी के रूप में यद्यपि ठीक से काम नहीं तो, अन्य तारीख स्वरूपों में से एक :)

+0

उत्कृष्ट पकड़ का उपयोग करना चाहिए! – Arrowmaster

+0

वाह, मेरी इच्छा है कि मैं इसे कई बार बढ़ा सकता हूं। धरती पर क्या आपने इसे जांचने के लिए सोचा? –

+4

@ एड्रियन मैंने दस्तावेज़ों में कुछ भी नहीं देखा, और मेरे पास पहले से ही गिट स्रोत चेक आउट था ... इसलिए मैंने grepping शुरू कर दिया। कभी-कभी आरटीएफएस किसी भी चीज की तुलना में समस्या के दिल में आता है :) – hobbs

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