2011-04-18 12 views
9

मैं Mercurial के लिए सामान्य एक्सटेंशन के साथ एक साझा एचजीआरसी फ़ाइल बनाने की कोशिश कर रहा हूं, इसलिए मेरे सहकर्मियों को लगातार अनुभव मिल सकता है और उपयोगी टूल मिल सकते हैं। Mercurial के साथ शिप नहीं करते एक्सटेंशन को सक्षम करना, हालांकि, समस्याएं पैदा कर रहा है।Mercurial .hgrc फ़ाइल में रिपोजिटरी सापेक्ष पथ

मेरा मुख्य रेपो के एक स्रोत के नियंत्रण, साझा .hgrc फाइल करने के लिए hgrc अंक:

\ Repo.hg \ hgrc

%include ..\tools\hg\dev.hgrc 

साझा dev.hgrc तो एक्सटेंशन सक्षम बनाता है हम स्रोत रखना नियंत्रित:

\ रेपो \ उपकरण \ एचजी \ dev.hgrc

[extensions] 
hgshelve=tools\hg\hgshelve\hgshelve.py 
fold=tools\hg\hgfold\fold.py 

समस्या यह है कि एक्सटेंशन केवल तभी पाए जाते हैं जब रूट रेपो निर्देशिका से एचजी चलाया जाता है।

E:\Repo\src>hg 
*** failed to import extension hgshelve from tools\hg\hgshelve\hgshelve.py: [Errno 2] No such file or directory 
*** failed to import extension fold from tools\hg\hgfold\fold.py: [Errno 2] No such file or directory 

मैं रिश्तेदार पथ संरचना के अलावा कुछ पर निर्भर रहे बिना भंडार की जड़ का उल्लेख करना चाहते हैं: एक उपनिर्देशिका से यह चल रहा है त्रुटियों देता है।

मैंने manual में देखा है, लेकिन वहां कोई भी रिपॉजिटरी सापेक्ष पथ विकल्प नहीं दिख रहे हैं।

+0

हमने हमारी कंपनी में एक बहुत ही समान बात की। दुर्भाग्य से हमें इसका समाधान नहीं मिला और बस समस्या के आसपास काम किया। प्रत्येक व्यक्ति हमारे hgtools रेपो को उसी स्थान पर $ HOME/.hg-scripts/hgtools पर क्लोन करता है और फिर वे% उस फ़ाइल को उनके $ HOME/.hgrc फ़ाइल में शामिल करते हैं। साझा एचजीआरसी के सभी पथ फॉर्म HOME/.hg-scripts/hgtools/के रूप में पूर्ण पथ हैं ... यह हमारे लिए काम कर रहा है, लेकिन यह बहुत ही सुरुचिपूर्ण नहीं है। –

+1

धन्यवाद मार्क। यह जानकर अच्छा लगा कि हम अकेले नहीं हैं। – jasonrclark

+2

यदि आप "असली" Mercurial समुदाय को नहीं लिखते हैं तो आप कभी भी इन चीजों को ठीक नहीं करेंगे: [email protected] - जबकि हम कुछ डेवलपर हैं जो यहां मदद करने की कोशिश करते हैं, अधिकांश मर्क्यूरियल डेवलपर्स केवल पढ़ते हैं मेलिंगलिस्ट। (मुझे लगता है कि हमारे पास भंडार-सापेक्ष पथ निर्दिष्ट करने का एक तरीका होना चाहिए, यह '% शामिल 'निर्देश का उपयोग करने के बहुत अच्छे तरीके सक्षम करेगा।) –

उत्तर

0

यह काफी नहीं है जो आप खोज रहे हैं, लेकिन यदि आपके सिस्टम कठपुतली, महाराज या पैकेज नियंत्रित हैं, तो आप आसानी से ऐसे पैकेज को जोड़ सकते हैं जो /etc/mercurial/hgrc.d/ में फ़ाइलों को छोड़ देता है हर रन पर सभी उपयोगकर्ताओं के लिए निष्पादित। आप वहां एक्सटेंशन को सक्षम करने के लिए एक्सटेंशन .py फ़ाइलें और hgrc स्निपेट डाल सकते हैं।

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