मैं मर्क्यूरियल में नया हूं। बस सही कमांड नहीं मिल रही है। बिना किसी भाग्य के अपडेट / चेकआउट की कोशिश की। मैं स्थानीय भंडार का उपयोग कर रहा हूं। धन्यवाद
मैं मर्क्यूरियल में नया हूं। बस सही कमांड नहीं मिल रही है। बिना किसी भाग्य के अपडेट / चेकआउट की कोशिश की। मैं स्थानीय भंडार का उपयोग कर रहा हूं। धन्यवाद
जवाबों:
मुझे लगता है कि आप चाहते हैं hg revert -r<rev> <file>(यह उस फ़ाइल को बदल देगा जैसा कि दिए गए संशोधन में था)।
जैसा कि djc ने कहा कि revertपूर्व संशोधन के साथ मेल करने के लिए एक फ़ाइल को बदल देता है। यदि आप यह चाहते हैं कि आप उस जगह का उपयोग नहीं कर सकते हैं hg cat -r revisionid filename(जो संशोधन और फ़ाइल नाम बदलना है), जो फ़ाइल को स्टडआउट में आउटपुट करेगा, जिसे आप कहीं भी पुनर्निर्देशित करना चाहते हैं।
hg revertवास्तव में इस समस्या को हल करता है। लेकिन मुझे लगता है कि आप अपने प्रश्न के उत्तर की तुलना में चीजों की व्यापक श्रेणी के बारे में उलझन में हैं और अधिक पूरी तरह से उत्तर देने की कोशिश करना चाहते हैं।
hg updateपूरी तरह से रिपोजिटरी कमांड है और व्यक्तिगत फाइलों पर काम नहीं करेगा। यह svn updateइस तरह से तोड़फोड़ के विपरीत है । यदि आप करते हैं तो hg --help updateआप देख सकते हैं कि यह मामला है क्योंकि कमांड कोई फ़ाइल तर्क नहीं लेता है। इसका उपयोग आपकी संपूर्ण रिपॉजिटरी को एक विशेष स्नैपशॉट में ले जाने के लिए किया जा सकता है, लेकिन इसका उपयोग केवल एक फ़ाइल के लिए नहीं किया जा सकता है।
यदि आप टाइप hg --helpकरते हैं तो आपको कमांड की एक सूची दिखाई देती है। यह एक बड़ी और कुछ हद तक कठिन सूची है, लेकिन यदि आप इसके माध्यम से पढ़ते हैं, तो आपको यह पंक्ति मिलेगी:
revert restore individual files or directories to an earlier state
अब, यदि आप केवल तुलनात्मक उद्देश्यों के लिए अंतिम स्थिति चाहते हैं, तो एक और आदेश है जिसमें आपकी रुचि हो सकती है, और वह है hg cat। यह आपको किसी भी विशेष संशोधन में एक फ़ाइल की सामग्री का प्रिंट आउट करने की अनुमति देगा। आप इसके आउटपुट को किसी अन्य फ़ाइल में रीडायरेक्ट कर सकते हैं। फिर आपके पास साइड-बाय-साइड तुलना करने के लिए आपकी फ़ाइल का पिछला ज्ञात अच्छा संस्करण और पुराना संस्करण हो सकता है।
मर्कुरियल के अलग-अलग updateआदेश होने का कारण यह है कि मर्क्यूरियल में कुछ ऐसा करना संभव है जो कि तोड़फोड़ में असंभव है। आप updateपहले वाले संस्करण में बदलाव कर सकते हैं, फिर प्रतिबद्ध कर सकते हैं। यह एक शाखा बनाएगा। updateआदेश भी वर्तमान कार्यशील निर्देशिका की मूल संशोधन को बदलने के साथ ही है कि माता-पिता संशोधन के संस्करण के लिए है कि निर्देशिका में सभी फ़ाइलों की सामग्री को बदलने के प्रभाव है।
इसका मतलब है कि revertयदि आप कमांड को सही तर्क देते हैं तो फ़ाइल (या संपूर्ण रिपॉजिटरी) की सामग्री को बदल देता है, लेकिन वर्तमान में काम कर रहे कॉपी के मूल संशोधन को छोड़ देता है।
आप hg parentsकमांड का उपयोग करके वर्तमान कामकाजी प्रति के मूल संशोधन (या मर्ज के मामले में संशोधन) का पता लगा सकते हैं ।
तोड़फोड़ में संशोधन एक सख्ती से रैखिक प्रगति कर रहे हैं। मर्क्यूरियल एक टोपी की बूंद पर शाखाएं बनाता है, और वे विलय करने में लगभग आसान होते हैं। संशोधन एक डीएजी बनाते हैं, न कि एक सख्ती से रैखिक प्रगति।
किसी विशिष्ट फ़ाइल का एक विशिष्ट संशोधन निकालने के लिए आप इसे Windows पर कर सकते हैं:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
यहां, 9 संशोधन संख्या है।
या इससे भी बेहतर:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"