2011-10-30 3 views
8

हमारे तेज भंडार जब एक पुराने शाखा है जो एक subrepo/संशोधन जोड़ी है कि अब मौजूद नहीं है है करने के लिए अद्यतन करने की कोशिश कर अटक जाती है।एक Mercurial repo को कैसे ठीक करें जो अद्यतन करने में विफल रहता है क्योंकि subrepo में संशोधन याद करने के लिए बिंदु?

abort: unknown revision '22e9bb6a6cd98be85b995f632b2f72d6298f9354'! 

वहाँ किसी भी तरह से मर्क्युरियल बताने के लिए एक संशोधन या शाखा को अद्यतन करने के लिए, लेकिन subrepos अद्यतन करने का प्रयास नहीं है?

+0

इस प्रश्न पूछने के लिए धन्यवाद। Fwiw, ऐसा लगता है दो साल के बाद आप से पूछा यह समझौता किया गया था: http://mercurial.808500.n3.nabble.com/PATCH-subrepo-check-phase-of-state-in-each-subrepositories-before-committing-td4005250 .html – weberc2

उत्तर

6

subrepo अभी भी कहीं और मौजूद है? आप [subpaths] सेक्शन का उपयोग करके पॉइंटर को बदल सकते हैं, जो .hgsub में स्थानों के ऊपर एक अनुवाद परत प्रदान करता है।

तो यह वास्तव में कहीं भी मौजूद नहीं है आप कर सकते थे तो जैसे कुछ गहरे जादू:

hg debugsetparent REVISION_YOU_WANT 
cat /dev/null > .hgsub # put an empty .hgsub in place 
hg commit .hgsub 
hg update tip 

को छोड़कर यह एक खाली .hgsub फ़ाइल है कि एक नया संशोधन सिर्फ REVISION_YOU_WANT की तरह है कि बनाना चाहिए, ताकि आप तो कर सकते हैं इसे अद्यतन करें।

यदि आप उपपथ के साथ कुछ नए स्थान और इसे करने के लिए बिंदु पर subrepo मिल सकता है ज्यादा बेहतर होगा।

+0

क्या यह हैक अगली बार जब मैं धक्का देता हूं या यह सिर्फ स्थानीय है तो अन्य रिपो के लिए प्रचारित किया जा रहा है? – Pol

+0

यदि आप प्रतिबद्ध करते हैं, तो इसे 'पुश' पर प्रचारित किया जाएगा। यदि आप कार्य करने से पहले उस क्लोन को नहीं चाहते हैं। स्थानीय क्लोन तात्कालिक होते हैं (लगभग) डिस्क स्थान लेते हैं - वे चीज को आज़माने के लिए एक * शानदार * तरीका हैं। –

+2

ध्यान दें कि अगर आप के लिए प्रतिबद्ध है, वापस अद्यतन करने के लिए करने के लिए एक नामित शाखा (डिफ़ॉल्ट के अलावा अन्य) पर है कोशिश कर रहे हैं आप कर के बाद एचजी debugsetparent आप भी एचजी शाखा करना होगा। –

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