2010-10-20 6 views
11

this question के उत्तर में, Ry4an बताता है कि "आप Changeset2 को धक्का दिए बिना Changeset2 को धक्का नहीं दे सकते"।Mercurial में, क्या कोई तरीका है ("चेरी पिकिंग" से अलग) एक बदलाव को धक्का देने के लिए एक अलग सिर से जुड़े बदलावों को दबाए बिना?

यह निश्चित रूप समझ में आता है भंडार इस तरह दिखता है:

+ Changeset2 
| 
+ Changeset1 
| 
+ Original 

हालांकि यह इस परिदृश्य है, जो मैं वर्तमान में क्या है में के रूप में ज्यादा समझ बनाने के लिए नहीं लगता है:

+ Changeset2 
| 
| + Changeset1 
|/
|/
+ Original 

आदर्श रूप में, मैं केवल चेंजसेट 2 को उस भंडार में धक्का दे सकता हूं जिसे मैंने शुरू में क्लोन किया था। Mercurial मुझे ऐसा करने के लिए तैयार नहीं लग रहा है। यह जोर दे रहा है कि मैं चेंजसेट 1 को भी दबाता हूं ... जिसकी अनुमति नहीं है क्योंकि यह मूल भंडार में एक नया सिर बनायेगा। जाहिर है, मैं "चेरी पिक" कर सकता हूं, या मूल भंडार पर लागू करने के लिए एक पैच बना सकता हूं लेकिन यह गुंजाइश लगता है। क्या मैं कुछ भूल रहा हूँ?

अद्यतन: मुझे शायद अपने प्रारंभिक प्रश्न में उल्लेख किया जाना चाहिए कि मैं TortoiseHg GUI से ऑपरेशन करने की कोशिश कर रहा था। Niall C के रूप में। अपने उत्तर में सही ढंग से पहचाना गया, Mercurial कमांड लाइन ने मुझे जो कुछ चाहिए उसे पूरा करने की अनुमति दी, हालांकि मुझे अभी भी सीखने में दिलचस्पी होगी कि जीयूआई से एक ही ऑपरेशन पूरा करने का कोई तरीका है या नहीं।

+0

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

+1

आपके अपडेट के बारे में, TortoiseHg में ऐसा करने का एक तरीका है, लेकिन इसे वास्तव में डिफ़ॉल्ट व्यवहार के रूप में नहीं माना जा सकता है: आपको मैन्युअल रूप से चुनना होगा कि हर बार जब आप धक्का देते हैं तो किन शाखाओं को धक्का देना पड़ता है। Http://stackoverflow.com/questions/2819760/ – StriplingWarrior

उत्तर

11

यदि आप किसी भी कमांड लाइन विकल्प के बिना hg push का उपयोग कर रहे हैं, तो यह आपके स्थानीय भंडार में प्रत्येक परिवर्तन को धक्का देने का प्रयास करेगा जो रिमोट रिपोजिटरी में मौजूद नहीं है। यदि आप -r/--rev विकल्प का उपयोग करते हैं, तो यह केवल उस संशोधन और उसके पूर्वजों को धक्का देगा। आपके मामले में, आपको बस इतना करना होगा:

hg push --rev Changeset2 

पूर्ण विवरण के लिए hg help push देखें।

+0

उत्कृष्ट देखें! मुझे यकीन था कि मुझे कुछ याद आना चाहिए और वह था। –

+3

स्टीव लॉश की 'एचजी नजगे' कमांड देखें (http://hgtip.com/tips/advanced/2009-09-28-nudge-a-gentler-push/)।यह वही विचार है, लेकिन उसके पास कुछ अच्छी स्पष्टीकरण और वर्कफ़्लो हैं जिनका आप इसका उपयोग कर सकते हैं। – tghw

2

जो चित्रों की तरह यूआई प्रेमियों के लिए:

  1. Detect outgoing changes to बटन पर क्लिक TortoiseHg में। enter image description here

  2. उस संशोधन पर दायां माउस बटन क्लिक करें जिसे आप धक्का देना चाहते हैं।

  3. Push -> Push to Here चुनें। enter image description here

परिणाम: आप केवल बल्कि सब कुछ से चयनित पुनरीक्षण भेज दिए जाएंगे। enter image description here

आशा है कि यह आपको कुछ समय बचाएगा।

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

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