मेरे पास एक उलझी हुई शाखा/विलय संरचना के साथ एक व्यापारिक रेपो है। कुछ शाखाओं में स्थानीय अनुकूलन होते हैं जिन्हें मुख्य रेपो में नहीं धकेला जाना चाहिए, लेकिन ऐसी शाखाओं के कुछ परिवर्तनों को में default और/या कुछ फीचर शाखाओं में मिला दिया गया हो सकता है जिन्हें पुश किया जाना चाहिए।

इससे पहले कि मैं किसी विशेष शाखा के संशोधनों को आगे बढ़ाऊं, मैं यह जानना चाहूंगा कि किन अन्य शाखाओं ने, यदि कोई हो, योगदान दिया है, जिन्हें साथ लिया जाएगा। उदाहरण:

feature1 ... o--o--o---o--o--o--o
              \       /    
config         x--x--x--x

अगर मैं शाखा feature1 को धक्का देता हूं, तो यह शाखा config से तीन बदलावों को भी खींच लेगी। मैं उन परिवर्तनों का पूर्वावलोकन करने के लिए hg outgoing -b branchname destination_repo का उपयोग कर सकता हूं जिन्हें धक्का दिया जाएगा, लेकिन बहुत सारे बदलाव और बहुत सारी शाखाएं हैं जिन्हें धक्का देना है। क्या उन शाखाओं की सूची प्राप्त करने का कोई तरीका है जो पूर्वजों के परिवर्तनों में योगदान देंगे, या केवल प्रभावित परिवर्तन जो मेरे द्वारा निर्दिष्ट नामित शाखा से संबंधित नहीं हैं?

1
alexis 29 जून 2017, 14:12

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 तर्क के माध्यम से स्पष्ट रूप से वांछित संशोधन दें।

1
planetmaker 29 जून 2017, 15:09

ऐसी चीजों से निपटने के लिए आप 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"

और अंत में केवल आवश्यक परिवर्तन करें और पोस्ट करें। यह केवल आवश्यक शाखा में सुविधा को आगे बढ़ाएगा जहां आपने अपनी कार्यशील निर्देशिका को अपडेट किया है।

-1
Lalit 29 जून 2017, 14:32