2012-03-05 5 views
6

मुझे पता है कि यह निर्दिष्ट करने के लिए कि कौन से हुक चलाए जाते हैं। मैं क्या जानना चाहता हूं कि hgrc फ़ाइल के माध्यम से हुक में कॉन्फ़िगर करना संभव है। एक्सटेंशन ऐसा कर सकते हैं, उदा।क्या मैं Mercurial hooks को कॉन्फ़िगर कर सकता हूं जैसे कुछ एक्सटेंशन hgrc फ़ाइल में कॉन्फ़िगर किए गए हैं?

[extensions] 
someextension = something 

[someextension] 
some.config = 1 
some.other.config = True 

मैं हुक के लिए कुछ ऐसा करने में सक्षम होना चाहता हूं, उदा।

[hooks] 
changegroup.mail_someone = python:something 

[changegroup.mail_someone] 
to_address = [email protected] 

क्या ऐसा कुछ संभव है? ऐसा करने के तरीके खोजने के लिए कुछ भी उपयोगी नहीं हुआ है ... यदि यह संभव है, तो मैं अपने (पायथन इन-प्रोसेस) हुक हैंडलर में कॉन्फ़िगरेशन में पढ़ने के बारे में कैसे जा सकता हूं? तुम भी करने के लिए ui.configbool और ui.configlist उपयोग कर सकते हैं

address = ui.config('changegroup.mail_someone', 'to_address') 

:

उत्तर

6

मुझे दोनों हुक प्रकार के लिए जवाब दो:

  • एक प्रक्रिया में हुकui.config and the related methods का प्रयोग करेंगे config मूल्यों को पढ़ने के लिए क्रमशः बूलियन और सूचियों को पढ़ें।

  • एक बाहरी हुक विन्यास मान प्राप्त करने के hg showconfig उपयोग कर सकते हैं:

    $ hg showconfig changegroup.mail_someone.to_address 
    

    कि stdout पर [email protected] वापस आ जाएगी। आप उस विशेष खंड में सभी सेटिंग्स देखने के लिए

    $ hg showconfig changegroup.mail_someone 
    

    का उपयोग कर सकते हैं।

+0

धन्यवाद। यह आसान है। संभवतः, आप 'os.popen (' hg showconfig mail_someone.to_address ') करके एक आंतरिक हुक के साथ लगभग उसी तरह तक पहुंच सकते हैं। – Spycho

+0

@Spycho: निश्चित रूप से, आप यह कर सकते हैं। लेकिन एक आंतरिक हुक के लिए आपके पास पहले से ही 'ui' ऑब्जेक्ट है और इसलिए आप 'ui.config (' mail_someone ',' to_address ') को सीधे कॉल कर सकते हैं। –

+0

आह, भयानक। यह आसान है। मैंने सोचा कि मैंने कहीं कहीं पढ़ा है कि आप यूई और रेपो पैरामीटर के माध्यम से प्राप्त होने वाली आंतरिक मर्क्यूरियल विधियों का उपयोग नहीं किया जाना चाहिए क्योंकि वे बिना किसी सूचना के तोड़ सकते हैं? क्या यह नहीं है कि http://mercurial.selenic.com/wiki/MercurialApi किस बारे में है? या यह "Mercurial की आंतरिक एपीआई" का हिस्सा नहीं माना जाता है? – Spycho

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

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