2009-10-17 15 views
7

मान लें कि मेरे पास Heroku पर एक रेल एप्लिकेशन तैनात है। मैं अपने विचारों में जानकारी के इन टुकड़ों को कैसे प्रदर्शित कर सकता हूं?हेरोकू: व्यू में गिट रेविजन हैश और टाइमस्टैम्प प्रदर्शित करें?

  • Git पिछले संशोधन आखिरी संशोधन

उत्तर

6

हेरोकू प्रतिबद्ध हैश ENV['COMMIT_HASH'] के साथ एक पर्यावरण चर सेट करता है।

टाइमस्टैम्प के लिए, यदि आप वहां अपना कोड होस्ट करते हैं तो आप हैश के साथ github api पर क्लिक कर सकते हैं। ऐसा लगता है कि ruby-github gem इस के साथ आपकी सहायता कर सकता है, या आप इसे HTTParty के साथ स्वयं कर सकते हैं।

+7

'ENV ['COMMIT_HASH'] 'बांस पर काम करता है, लेकिन सीडर नहीं। –

1

है grit Heroku पर स्थापित के लिए

  • टाइमस्टैम्प के लिए हैश। तो आप इसका उपयोग कर भंडार खोल सकते हैं।

    repo = Repo.new(Rails.root + '.git') 
    last_commit = repo.commits.first 
    p last_commit.id 
    p last_commit.authored_date 
    
  • +1

    टिप के लिए धन्यवाद। दुर्भाग्यवश, यह मेरे लिए क्योकोक कंसोल में काम नहीं कर रहा है (क्या यह ऐप में अलग होगा?)। Repo.new के बाद, मुझे 'Grit :: NoSuchPathError:' कोई विचार मिलता है? –

    +0

    इसी तरह की समस्या को हल करने का प्रयास कर, मैं पुष्टि कर सकता हूं कि यह वर्णन के अनुसार काम नहीं करता है। – Andrew

    +1

    यह काम नहीं करता है, क्योंकि .git निर्देशिका Heroku पर उपलब्ध नहीं है, कम से कम मौजूदा सीडर स्टैक में नहीं। –

    0

    मैं तुम्हें आदेश रेपो वस्तु बनाने के लिए सक्षम होने के लिए अपनी रेल एप्लिकेशन में 'धैर्य' config.gem करने की जरूरत है लगता है।

    आप धैर्य यहाँ http://github.com/mojombo/grit/

    2

    इस का कारण है, क्योंकि अपने ऐप dyno ग्रिड पर तैनात किया जाता है अनुरोध का उत्तर देने के लिए, यह तेजी से तैनाती के लिए एक "स्लग" में संकलित किया है के बारे में पढ़ सकते हैं, और इस स्लग नहीं करता ' अब इसके साथ गिट रेपो है।

    +0

    यह पहली टिप्पणी (रिच अपोडाका द्वारा) के जवाब में प्रतिक्रिया देता है http://stackoverflow.com/a/1584452/1034080 (डेमियन MATHIEU द्वारा)। –

    1

    ऐसा करने का एक और तरीका एक रेक कार्य के साथ तैनाती करना है जो स्थानीय रेपो से इच्छित संस्करण जानकारी प्राप्त करता है और हेरोोकू पक्ष पर पर्यावरण चर अद्यतन करता है। फिर आप हेरोकू पक्ष पर व्यवहार पर भरोसा किए बिना टैग, या एक प्रतिबद्ध हैश, या कुछ और का उपयोग कर सकते हैं।

    उदाहरण के लिए, यदि आप नवीनतम टैग अपने रेक कार्य में, उपयोग करना चाहता था: अपने कार्य के शरीर में फिर

    def app_version 
        %x[git describe --tags --abbrev=0].strip 
    end 
    

    :

    run "git push blah:blah blah" 
    run "heroku config:add APP_VERSION=#{app_version}" 
    

    मैं करने में सक्षम होना चाहते हैं अप्रत्यक्ष रूप से इसे घुमाने के बजाय, उस जानकारी को सीधे हेरोोक पर गिट से प्राप्त करें, लेकिन मैं कभी यह समझने में सक्षम नहीं हूं कि यह कैसे किया जाए।

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

    • कोई संबंधित समस्या नहीं^_^