7

आम तौर पर में विस्तार विन्यास, मैं .hg/hgrc के लिए निम्न जोड़कर एक्सटेंशन सक्षम होगा किसी और के लिए सक्षम (सहकर्मी, निर्माण मशीन) भंडार क्लोनिंग। ध्यान दें कि जिन एक्सटेंशन को क्लोनोज़री को इन एक्सटेंशन को सक्षम करने के लिए कुछ भी करने की आवश्यकता नहीं है।संस्करण नियंत्रित मर्क्युरियल

ऐसा लगता है कि the documentation से यह संभव नहीं है, लेकिन क्या किसी को भी कोई साफ चाल पता है जो मेरी मदद कर सकता है?

उत्तर

9

जब आप रेपो क्लोन करते हैं तो आप स्वचालित रूप से कुछ करना चाहते हैं (हुक या कॉन्फ़िगरेशन अपडेट करें)। Documentation यह संभव नहीं है कहते हैं और कुछ बहुत ही अच्छे कारणों देता है:

Hooks do not propagate 

In Mercurial, hooks are not revision controlled, and do not propagate when you clone, 
or pull from, a repository. The reason for this is simple: a hook is a completely  
arbitrary piece of executable code. It runs under your user identity, with your 
privilege level, on your machine. No comments 

It would be extremely reckless for any distributed revision control system to 
implement revision-controlled hooks, as this would offer an easily exploitable way to 
subvert the accounts of users of the revision control system. No comments 

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

आपकी समस्या का समाधान करने का एकमात्र तरीका यह है कि आपके सभी उपयोगकर्ताओं को कम से कम एक बार दिए गए स्क्रिप्ट को चलाने/इंस्टॉल करना होगा जो आपके इच्छित कार्यों को निष्पादित करता है, कुछ सही हुक स्थापित करना।

आप इस बारे में चालाक होना चाहते हैं:

    • कि चलाने के लिए .hg या उपयोगकर्ता में सही config कॉपी करने के लिए एक हुक स्थापित हो जाएगा एक बार की स्क्रिप्ट बनाने कि यह सुनिश्चित कर लें हुक, एक बार स्थापित है, उन
    • हुक बनाने के लिए config अद्यतन वितरित करने के लिए स्क्रिप्ट को अपडेट कर सकते संदेशों
    • केंद्रीय भंडार पर मना प्रतिबद्ध करने के लिए अंकन कुछ विशेष जोड़ने के लिए प्रतिबद्ध है कि विशेष संदेश ले नहीं है

    थोड़ा जटिल है, लेकिन यह सबसे करीब मैं अपनी आवश्यकताओं के कल्पना कर सकते हैं क्या है:

    • उपयोगकर्ता एक स्क्रिप्ट एक बार चलाने के लिए और वे भूल जाते हैं
    • आप यह सुनिश्चित करें कि अगर यह नहीं चला कर सकते हैं, वे अपने केंद्रीय रेपो
  • +0

    हां, विशेष बिल्ड स्क्रिप्ट या सामान्य बिल्ड सर्वर कॉन्फ़िगरेशन अगले सबसे अच्छे समाधान हैं। मैं बस उम्मीद कर रहा था कि इस के लिए एचजी में कुछ आसानी से खोजने योग्य कार्यक्षमता नहीं थी। --- "दस्तावेज़ीकरण कहता है कि यह संभव नहीं है और कुछ अच्छे कारण देता है।" यह कहां कहता है? कुछ ऐसा लगता है जो मैं पढ़ना चाहता हूं। – Deestan

    +0

    मैंने अपनी प्रविष्टि को प्रासंगिक दस्तावेज़ के लिंक के साथ संपादित किया। –

    0

    .hg/hgrc से एक लिंक बनाने के बारे में क्या उदाहरण के लिए customhg/hgrc ताकि यह संस्करण हो। फिर आपको कुछ हुक बनाने की ज़रूरत है जो इसे .hg/hgrc पर प्रतिलिपि बनाता है - उदा। प्रत्येक अद्यतन के बाद।

    +0

    इसे पूरी तरह से स्वचालित होने की आवश्यकता है, मैं समय-समय पर प्रत्येक बिल्ड गुलाम को '.hg/hgrc' बनाने के लिए लॉग इन नहीं करना चाहता हूं। संपर्क। – Deestan

    +0

    मुझे लगता है कि Mercurial लिंक का समर्थन करता है। इसलिए, यदि आप customhg/hgrc को चेक करते हैं, जबकि यह .hg/hgrc को इंगित करता है, तो उसे काम करना चाहिए। –

    +1

    लिंक निर्माण स्वयं स्वचालित नहीं है। इसलिए, आप उपयोगकर्ताओं को एक विशिष्ट कार्रवाई करने के लिए कह रहे हैं, जिसे लेखक नहीं चाहते हैं। –

    6

    मर्क्युरियल की वर्तमान विकास संस्करण के लिए प्रतिबद्ध नहीं कर सकते हैं (1 जुलाई को मर्क्युरियल 1.3 के रूप में जारी किया जाएगा) का समर्थन करता है इसके विन्यास फाइल में एक %include निर्देश।

    इसका मतलब है कि आप .hg/hgrc में

    %include ../common-hgrc 
    

    डाल करने के लिए कह सकते हैं। ऐसा करने के बाद, आप common-hgrc में परिवर्तन करके प्रभावी रूप से अपनी Mercurial सेटिंग्स को नियंत्रित कर सकते हैं। जब वे परिवर्तन खींचते हैं, तो नई सेटिंग्स प्रभावी हो जाएंगी।

    क्या टिप्पणी है कि यह खतरनाक है: किसी को भी, जो आप अब common-hgrc में मनमाने ढंग से हुक सम्मिलित कर सकते हैं अपने भंडार में परिवर्तन को खींचने के लिए प्राप्त कर सकते हैं और आप उन्हें अगले मर्क्युरियल आदेश (यहां तक ​​कि एक "सुरक्षित" कमांड लाइन hg status) पर निष्पादित करेंगे ।

    +0

    मुझे यह कामकाज पसंद है। यह रेपो में शामिल करने के लिए छोटा है जो% स्क्रिप्ट को जोड़ता है .hg/hgrc में लाइन शामिल है – LordOfThePigs

    1

    आप ProjRC extension के माध्यम से उस समस्या को हल करने में सक्षम हो सकते हैं।

    "यह एक्सटेंशन अतिरिक्त विन्यास सेटिंग्स के लिए Mercurial देखो और parse .hg/projrc बनाता है। फ़ाइल क्लोन पर और पुल पर स्थानांतरित की जाती है (लेकिन कभी भी पुश पर नहीं) "

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