2010-05-05 7 views
8

मुझे मर्कुरियल में नामित शाखाएं बनाना पसंद है जो कोड में कुछ समय ले सकता है, इसलिए जब मैं धक्का देता हूं तो मैं hg push -r default करता हूं ताकि यह सुनिश्चित किया जा सके कि मैं केवल डिफ़ॉल्ट शाखा में परिवर्तन को दबा रहा हूं। हालांकि, हर बार जब मैं पुश या आउटगोइंग कमांड करता हूं तो -r default को याद रखना दर्द होता है।Mercurial में धक्का देने के लिए डिफ़ॉल्ट शाखा को कैसे बदलें?

तो मैं करने के लिए इस config जोड़कर इसे ठीक करने की कोशिश की मेरी ~/.hgrc:

[defaults] 
push = push -r default 
outgoing = outgoing -r default 

समस्या है, उन config लाइनों वास्तव में चूक नहीं हैं, वे उपनाम है। वे तब तक काम करते हैं जब तक कि मैं hg push -r <some revision> करने का प्रयास नहीं करता। और मैंने "डिफ़ॉल्ट" सेटअप किया है जो मैंने पारित संशोधन को समाप्त कर दिया है। (मुझे लगता है कि defaults are deprecated, लेकिन उपनामों में एक ही समस्या है)।

मैंने चारों ओर देखने की कोशिश की, लेकिन मुझे कुछ भी नहीं मिला जो मुझे धक्का देने के लिए एक डिफ़ॉल्ट शाखा सेट करने की अनुमति देगा और मुझे आवश्यक होने पर इसे ओवरराइड करने की अनुमति देगा। किसी और को पता है कि मैं कर सकता था?

ps: मुझे एहसास है कि प्रत्येक शाखा के लिए अलग क्लोन हो सकते हैं, लेकिन मैं ऐसा नहीं करूँगा। निर्देशिकाओं को स्विच करना मुश्किल है, खासकर जब आपने कॉन्फ़िगरेशन या संपादक वर्कस्पेस साझा किया हो।

उत्तर

5

मुझे नहीं लगता कि आप इसे शुद्ध व्यापार के साथ कर सकते हैं, इसमें केवल उस शाखा के साथ क्लोन होने से कम (जिसे मैं तब तक सुझाव देना चाहता था जब तक कि आपने कहा कि यह चाय का प्याला नहीं है)। यदि यह वास्तव में आप की मौत हो गई है आप की तरह एक छोटे से आवरण स्क्रिप्ट बना सकते हैं:

#!/bin/sh 
HG=/full/path/to/hg # executable 
if echo $* | grep -P -q -- 'push.*\s-r($|\s)' ; then 
    $HG $* 
else 
    $HG $* -r default 
fi 

नाम यह Hg 'और यह पहले डाल अपने रास्ते में।

+0

मुझे स्क्रिप्ट को संशोधित करना था ताकि इसे पुश और आउटगोइंग के अलावा अन्य आदेशों में "-r डिफ़ॉल्ट" नहीं जोड़ा जा सके, लेकिन सही दिशा में धक्का के लिए बहुत बहुत धन्यवाद। – timmfin

1

क्या आप शायद टोर्टोइज एचजी का उपयोग कर रहे हैं? एक स्पष्ट शाखा नाम पर पूर्ण वापसी करने से टोर्टोइज एचजी को उस शाखा को याद रखने का कारण बन जाएगा जो आप बाद के कामों के दौरान काम कर रहे हैं। मुझे यकीन नहीं है कि मेटाडाटा यह किससे प्राप्त करता है।

hg up -r {branchname} 

उदा।

hg up -r dev 
संबंधित मुद्दे