मैं वर्तमान में बिटबकेट से एचजी समर्थन छोड़ने के नतीजे से निपट रहा हूं। हम hg-git एक कोशिश करने जा रहे हैं क्योंकि, जबकि मेरी प्राथमिकता स्वयं-होस्टिंग है, मेरे बॉस अभी तक बीबी से दूर जाने के लिए एटलसियन में काफी पागल नहीं हैं। जीआईटी में रूपांतरण से पहले हमारे मौजूदा एचजी रेपो को साफ करने का अवसर लेते हुए। आकार आदि को कम करने के लिए गलती से किए गए कुछ बायनेरिज़ को हटाने के लिए hg convert का उपयोग किया है।

एक बात मैंने देखी है कि हमारे पास लगभग दो दर्जन पुरानी शाखाएं हैं जो तकनीकी रूप से "खुली" हैं, लेकिन डिफ़ॉल्ट रूप से विलय कर दी गई हैं (कोई समापन प्रतिबद्धता नहीं है, लेकिन वे महीनों से साल पुरानी हैं)। क्या कोई ऐसा तरीका है जिससे मैं hg histedit या hg convert जैसे टूल का उपयोग करके वापस जा सकूं और विशेष रूप से पुराने शाखा प्रमुखों को --close-branch से चिह्नित कर सकूं?

दस्तावेज़ों को देखकर मैं फाइलों को संपादित करने, काम करने की सामग्री को संपादित करने, या प्रतिबद्ध संदेशों को संशोधित करने के बारे में चीजें ढूंढ सकता हूं, लेकिन कुछ भी नहीं जो मुझे मेटा-डेटा का उल्लेख करता है कि कोई प्रतिबद्धता "बंद" है या नहीं। मुझे पता है कि यह किसी दिए गए प्रतिबद्धता पर सिर्फ एक झंडा है, लेकिन मुझे नहीं पता कि इसे किसी भी एचजी एक्सटेंशन के माध्यम से पूर्वव्यापी रूप से कैसे जोड़ा जाए।

संपादित करें: बस थोड़ा और स्पष्टता जोड़ने के लिए, मैं मानता हूं कि मैं इन पुरानी शाखाओं में से प्रत्येक को अपडेट कर सकता हूं और एक नई प्रतिबद्धता जोड़ सकता हूं जो शाखा को बंद कर देता है। बहुत सारे लटकते-दिखने वाले, बंद सिर होंगे, लेकिन यह काफी अच्छा काम करेगा। हालांकि, फिर मुझे उनमें से प्रत्येक को एचजी में भी एक बुकमार्क देना होगा, या ये अतिरिक्त "समापन" काम एचजी-गिट रूपांतरण में खो जाते हैं। मैं गिट शाखा-सूची में ~ 30 अतिरिक्त शाखाएं जोड़ने से बचना चाहता हूं, बस उन्हें एचजी में बिना रेवसेट का उपयोग किए ठीक से बंद करने के लिए दिखाना है।

मैं जो करना चाहता हूं वह रेपो की भव्य योजना में "आवश्यक" नहीं है, लेकिन मुझे आश्चर्य होगा कि --close-branch कहने के लिए किसी प्रतिबद्धता के मेटाडेटा को संपादित करना असंभव था।

1
Lovethenakedgun 13 जिंदा 2020, 06:48

1 उत्तर

सबसे बढ़िया उत्तर

मैंने एक नकली भंडार के साथ रीबेस विचार का परीक्षण किया और यह काम करने लग रहा था।

यहाँ प्रारंभिक रेपो था:

enter image description here

और यहाँ रिबेस के बाद की स्थिति थी:

enter image description here

मुझे लगता है कि यह उदाहरण उस प्रश्न से मेल खाता है जो प्रश्न पूछ रहा था। मर्ज से पहले मूल लटकने वाली क्लोज-ब्रांच चेंजसेट को स्थानांतरित कर दिया गया था।

मैंने डिफ़ॉल्ट रूप से अद्यतन किया और निम्न आदेश चलाया:

hg rebase --dest=4 --source=3 --keepbranches --config=ui.merge=internal:merge

मैंने वास्तव में कछुआ कार्यक्षेत्र का उपयोग रिबेस को निष्पादित करने के लिए किया था और यही वह कमांड है जिसका उपयोग किया गया था। तो ui.merge के लिए अंतिम तर्क शायद सख्ती से जरूरी नहीं है।

जैसा कि आपने पहले ही hg convert का उपयोग करते हुए देखा होगा, जब आप रिपॉजिटरी को संशोधित करने जाते हैं तो नए क्लोन बनाना वास्तव में एक अच्छा विचार है। इस प्रकार यदि यह गड़बड़ हो जाता है तो आपके पास पूर्ववत करने का एक आसान विकल्प है। मैं निश्चित रूप से इस ऑपरेशन के लिए भी उस दृष्टिकोण की अनुशंसा करता हूं।

2
StayOnTarget 14 जिंदा 2020, 10:19