mercurial मौलिक त्रुटि: रिपॉजिटरी असंबंधित है




dvcs bitbucket (4)

मैंने सिर्फ मर्क्यूरीयल के साथ शुरू किया है, मेरे पास बिटबकेट पर एक 'केंद्रीय' भंडार है, जिसे मैंने एक मशीन पर क्लोन किया और परिवर्तन किया और प्रतिबद्ध और धक्का दिया। मैंने तब बिटबकेट से एक और मशीन को क्लोन किया और वह धक्का दिया जो ठीक था। फिर मैं पहली मशीन पर वापस आ गया, उसने बदलाव किए और पुश करने का प्रयास किया, लेकिन त्रुटि संदेश मिला। मैं क्या गलत कर रहा हूं? क्या मैं पहले खींच लिया होगा? मैं त्रुटि को कैसे हल कर सकता हूं और पुश कर सकता हूं? किसी भी मदद की सराहना की है!

डैरेन।


आप इस संदेश को प्राप्त करते हैं जब आप उस क्लोन के अलावा किसी अन्य रिपॉजिटरी को धक्का देने की कोशिश करते हैं पुश के पते, या default पथ को दोबारा जांचें, यदि आप केवल अपने द्वारा hg push का उपयोग कर रहे हैं

डिफ़ॉल्ट पथ की जांच करने के लिए, आप hg showconfig | grep ^paths\.default उपयोग कर सकते हैं hg showconfig | grep ^paths\.default hg showconfig | grep ^paths\.default (या सिर्फ hg showconfig और लाइन के लिए देखो जो paths.default= शुरू होता है)


जब आप उसमें पहली बार प्रतिबद्ध करते हैं तो एक मर्कुरियल रिपॉजिटरी की पहचान हो जाती है। जब आप Bitbucket पर एक नया रिपॉजिटरी बनाते हैं, तो आप कोई पहचान के साथ एक रिक्त भंडार बनाते हैं।

जब आप इस रिपॉजिटरी को मशीन ए में क्लोन करते हैं और एक कमिट बनाते हैं और इसे वापस धक्का देते हैं, तो आप रिपॉजिटरी का ब्रांड यदि आपने पहले से धकेलने से पहले दूसरी मशीन पर रिपॉजिटरी का क्लोन किया है, तो आप उस स्थिति में समाप्त कर सकते हैं, जिसका वर्णन आप करते हैं।

कृपया मशीन पर hg paths चलाएं जहां आप पुश नहीं कर सकते। फिर रिपॉजिटरी का एक अलग क्लोन बनाओ, जो कहता है कि वह इसे दबाएगा। अब प्रत्येक रिपॉजिटरी में पहले परिवर्तनों की जांच करें

hg log -r 0

यदि प्रारंभिक परिवर्तन अलग है, तो आपके पास दो असंबंधित भंडार हैं, जैसा कि हम इसे मर्क्यूरिअल में कहते हैं इसके बाद आप उन परिवर्तनों को निर्यात कर सकते हैं जिन्हें आप पैच के रूप में नहीं धकेल सकते हैं और दूसरे में उन्हें आयात कर सकते हैं


अगर आपको पूरा यकीन है कि पुश पथ सही है, तो समस्या यह है कि आप अपने परिवर्तनों को समस्या के रेपो से पैच में निर्यात करें, फिर से बैकेटकेट से क्लोन करें और फिर पैच को नए रेपो में आयात करें। यह या तो बस काम करेगी या खराब / दूषित प्रतिबद्धता प्रकट करेगा।


मैं मर्कुरियल इंटर्न के बारे में ज्ञान साझा करना चाहूंगा

रिपॉजिटरीज से कोई संबंध नहीं है, जब उनके पास कोई भी संशोधन नहीं होता है।

इसी तरह के टुकड़े को आप mercurial/treediscovery.py में पा सकते हैं:

base = list(base)
if base == [nullid]:
    if force:
        repo.ui.warn(_("warning: repository is unrelated\n"))
    else:
        raise util.Abort(_("repository is unrelated"))

base दोनों स्थानीय / दूरस्थ खजाने में सामान्य भागों की जड़ों की एक सूची है

आप हमेशा पता कर सकते हैं कि कैसे रिपॉजिटरी अलग हैं:

$ hg in $REMOTE
$ hg out $REMOTE

आप दोनों (दोनों स्थानीय रूप से क्लोन करने के बाद) की जड़ों की जांच कर सकते हैं:

$ hg -R $ONE log -r "roots(all())"
$ hg -R $TWO log -r "roots(all())"

अगर उपरोक्त कमानों से आउटपुट आईडी साझा नहीं करता है - तो वे रिपॉजिटरी असंबंधित हैं हैश गुणों के कारण यह बहुत ही असंभव है कि जड़ें गलती से समान हैं आप सावधानी से रिपॉजिटरी क्राफ्टिंग द्वारा जड़ें की जाँच नहीं कर सकते क्योंकि दो खजाने का निर्माण इस तरह दिखता है (सामान्य भागों के साथ, लेकिन अलग-अलग जड़ों):

0 <--- SHA-256-XXX <--- SHA-256-YYY <--- SHA-256-ZZZ
0 <--- SHA-256-YYY <--- SHA-256-ZZZ

असंभव है क्योंकि इसका मतलब है कि आप SHA-256 को उल्टा करते हैं क्योंकि प्रत्येक बाद के हैंश पिछले मानों पर निर्भर करते हैं।

यह जानकारी होने पर मेरा मानना ​​है कि कोई भी देव error: repository is unrelated का निवारण करने में सक्षम है error: repository is unrelated

मर्कुरियल रिपॉजिटरी पहचान भी देखें

ध्यान देने के लिए धन्यवाद, अच्छा हैकिंग!





bitbucket