2011-01-11 8 views
13

मैं वास्तव में पाठ फ़ाइल संपादित किए बिना .hgrc कॉन्फ़िगरेशन आइटम सेट करने का कोई तरीका ढूंढ रहा हूं। मैं कई डेवलपर्स भर hgrc की स्थापना के मानकीकरण के लिए कोशिश कर रहा हूँ और मैं की तरहक्या मैं प्रोग्रामिक रूप से Mercurial कॉन्फ़िगरेशन विकल्प सेट कर सकता हूं?

hg --config ui.username=foo 

लेकिन जो भी hgrc फ़ाइल में है कि config परिवर्तन की बचत होती है एक आदेश चाहते हैं।

ऐसा लगता है कि ऐसा कुछ ऐसा होना चाहिए जो सीधे वेनिला एचजी कमांड में समर्थित होना चाहिए, लेकिन मुझे इसे कहीं भी नहीं मिल रहा है।

उत्तर

9

किसी - आप या मर्क्युरियल या तो - विन्यास फाइल को संपादित करने की अगर आप चाहते हैं config परिवर्तन :-)

बचाया जा करने के लिए है और अगर आप के साथ मर्क्युरियल कॉल कर सकते हैं

hg --config ui.username=foo 

तो आप भी ऐसा करने में सक्षम होना चाहिए

echo '[ui]' >> ~/.hgrc 
echo 'username = foo' >> ~/.hgrc 

जो config परिवर्तन की बचत होगी, कोई फर्क नहीं कैसे ~/.hgrc फ़ाइल की तरह लग रहे करने के लिए होता है (यह बहु के लिए ठीक है पीएल [ui] खंड)।

Mercurial 3.0 और बाद में the hg config --edit command है जो उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल के साथ एक संपादक खोलता है। अभी भी आप जो भी मांग रहे हैं, उतना ही नहीं, लेकिन कम से कम यह फ़ाइल को अंतःक्रियात्मक रूप से संपादित करना आसान बनाता है।

+3

और यदि प्रक्रिया जिसके तहत एचजी चल रहा है, में कोई '~' या HOME dir नहीं है, या यह '~' dir के साथ सिस्टम/डेमॉन उपयोगकर्ता के रूप में चल रहा है, तो आप इसे लिख नहीं सकते:: ~ ( – Garen

+1

@Garen: आप हमेशा 'HGRCPATH' को ओवरराइड करने के लिए सेट कर सकते हैं जहां Mercurial कॉन्फ़िगरेशन फ़ाइलों को ढूंढता है। यह आपके बेघर डेमॉन उपयोगकर्ता के लिए आसान होना चाहिए। –

+2

कुछ लोकप्रिय सीआई सिस्टम (जैसे टीमसिटी) ऐसा करने का कोई तरीका नहीं देते हैं। दस्तावेज़ीकरण भी सादा गलत है- उदाहरण के लिए एचजी दस्तावेज प्रणाली-विस्तृत स्थानों जैसे सी: \ Mercurial की जांच नहीं करता है, और मैं कभी भी विज्ञापित रजिस्ट्री स्थान को पढ़ने में सक्षम नहीं हूं। लिनक्स पर जब आपका निर्माण एक chroot के अंदर होता है तो यह कठिन हो सकता है जहां आपके पास पर्यावरण सेटिंग्स को प्रभावित करने की सीमित क्षमता हो सकती है, कोई होमडेर नहीं है, आदि। मैं आगे बढ़ सकता हूं, बिंदु यह है कि उनके चारों ओर घूमना इतना आसान होगा IFF Mercurial बस हमें एक कॉन्फ़िगर-फ़ाइल निर्दिष्ट करने देगा कमांड लाइन पर पथ। :) – Garen

2

यह फार्म:

hg --config ui.username=foo 

कुछ भी नहीं बचा है। यह सिर्फ एक रन के लिए मूल्य निर्धारित करता है।

यदि आप कुछ भी मदद करते हैं तो आप सिस्टम विस्तृत सेटिंग्स के लिए /etc/mercurial/hgrc का उपयोग कर सकते हैं।

1

एक विस्तार है कि इस के साथ मदद करता है नहीं है, https://bitbucket.org/alu/hgconfig/wiki/Home

installing that hgext के बाद, आप इस तरह कर सकते हैं।

% hg showconfig paths 
paths.default=ssh://[email protected]/alu/hgconfig 
% hg config paths.upstream $(hg showconfig paths.default) 
% hg config paths.default $(hg showconfig paths.default | sed 's|/alu/|/nassrat/|') 
% hg showconfig paths 
paths.default=ssh://[email protected]/nassrat/hgconfig 
paths.upstream=ssh://[email protected]/alu/hgconfig 

केवल पकड़ लिया आप कोड में और सुधार या तो कर सकते हैं कमान नाम बदलने के लिए, या यह साथ रहते हैं, यह अंतर्निहित config आदेश को ओवरराइड करता है। सौभाग्य से, यह शायद कोई फर्क नहीं पड़ता कि आपका उपयोग केस बस सेट करने और विशिष्ट कॉन्फ़िगरेशन प्राप्त करने के लिए है।

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

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