मेरे पास एक उलझी हुई शाखा/विलय संरचना के साथ एक व्यापारिक रेपो है। कुछ शाखाओं में स्थानीय अनुकूलन होते हैं जिन्हें मुख्य रेपो में नहीं धकेला जाना चाहिए, लेकिन ऐसी शाखाओं के कुछ परिवर्तनों को में default
और/या कुछ फीचर शाखाओं में मिला दिया गया हो सकता है जिन्हें पुश किया जाना चाहिए।
इससे पहले कि मैं किसी विशेष शाखा के संशोधनों को आगे बढ़ाऊं, मैं यह जानना चाहूंगा कि किन अन्य शाखाओं ने, यदि कोई हो, योगदान दिया है, जिन्हें साथ लिया जाएगा। उदाहरण:
feature1 ... o--o--o---o--o--o--o
\ /
config x--x--x--x
अगर मैं शाखा feature1
को धक्का देता हूं, तो यह शाखा config
से तीन बदलावों को भी खींच लेगी। मैं उन परिवर्तनों का पूर्वावलोकन करने के लिए hg outgoing -b branchname destination_repo
का उपयोग कर सकता हूं जिन्हें धक्का दिया जाएगा, लेकिन बहुत सारे बदलाव और बहुत सारी शाखाएं हैं जिन्हें धक्का देना है। क्या उन शाखाओं की सूची प्राप्त करने का कोई तरीका है जो पूर्वजों के परिवर्तनों में योगदान देंगे, या केवल प्रभावित परिवर्तन जो मेरे द्वारा निर्दिष्ट नामित शाखा से संबंधित नहीं हैं?
2 जवाब
hg outgoing
के आउटपुट को केवल (केवल) के लिए टेम्प्लेट करें जो आपको आवश्यक जानकारी प्रदान करें:
hg outgoing -T"{rev}: {branch}\n"
या यदि आपके पास बैश है, तो इसे शाखाओं की सूची में स्क्वैश कर दें (पूंछ की आवश्यकता है क्योंकि हम उन पंक्तियों को अनदेखा करना चाहते हैं जो बताती हैं कि किस रेपो की तुलना की जा रही है और यह परिवर्तनों की खोज कर रहा है):
hg outgoing -T"{branch}\n" | tail -n+3 | sort -u
hg incoming
के साथ भी यही काम करेगा। यदि आप केवल एक निश्चित संशोधन को खींचना (या धक्का देना) चाहते हैं, तो --rev XXX
या --branch BBB
तर्क के माध्यम से स्पष्ट रूप से वांछित संशोधन दें।
ऐसी चीजों से निपटने के लिए आप Tortoise hg https://tortoisehg.bitbucket.io/ का उपयोग कर सकते हैं। किसी विशेष शाखा में स्विच करें और उस विशिष्ट शाखा में किए गए परिवर्तनों को आगे बढ़ाएं जिसमें आप प्रतिबद्ध होना चाहते हैं।
अगर आप यूनिक्स मशीन पर ऐसा काम कर रहे हैं तो
hg shelve --all --name "UnfinishedChanges"
hg update [-c] [-C] [-d DATE] [[-r] REV]
aliases: up, checkout, co
update working directory (or switch revisions)
hg unshelve --name "UnfinishedChanges"
और अंत में केवल आवश्यक परिवर्तन करें और पोस्ट करें। यह केवल आवश्यक शाखा में सुविधा को आगे बढ़ाएगा जहां आपने अपनी कार्यशील निर्देशिका को अपडेट किया है।
संबंधित सवाल
नए सवाल
mercurial
मर्क्यूरियल एक तेज, ओपन-सोर्स डीवीसीएस (डिस्ट्रीब्यूटेड वर्जन कंट्रोल सिस्टम) है।