2010-12-09 3 views
27

क्या कोई स्पष्टीकरण दे सकता है कि अद्यतन और आदेशों के बीच सटीक अंतर क्या है?अद्यतन और खींचने के बीच क्या अंतर है?

धन्यवाद।

+10

यदि यह भ्रमित है, तो आप एक [मर्कुरियल ट्यूटोरियल] (http://hginit.com) –

+1

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

उत्तर

42

एचजी अद्यतन: http://www.selenic.com/mercurial/hg.1.html#update

  • अद्यतन भंडार के काम-काज निर्देशिका ("काम कर प्रतिलिपि") भंडार की निर्दिष्ट संशोधन के

एचजी पुल: http://www.selenic.com/mercurial/hg.1.html#pull

  • की अनुमति देता है आप रिमोट रिपॉजिटरी
से परिवर्तन लाने के लिए

तो जब आप एचजी खींचते हैं, तो आप अपने भंडार में परिवर्तन लाते हैं जो .hg से कम है। यह आपकी कार्यशील निर्देशिका में प्रतिबिंबित नहीं होगा।

उसके बाद, जब आप hg update करते हैं, तो परिवर्तन आपकी कार्यशील प्रतिलिपि में लाए जाते हैं।

Your repo         Remote Repo 
\          \ 
    |    hg pull     | 
    |-.hg <-------------------------------- |-.hg 
    | | --------------------------------> | 
    | hg update  hg push    | 
    | |         | 
    |- working folder      |- working folder 

संस्करण नियंत्रण प्रणाली जैसे उपवर्तन से आने पर यह बहुत सामान्य भ्रम है।

तोड़फोड़ में: SVN अद्यतन अपने काम की नकल

के लिए केंद्रीय रेपो सर्वर से परिवर्तन लाने लेकिन DVCSs में, आप दोनों एक स्थानीय भंडार और काम की नकल की है। तो अद्यतन बिल्कुल वही करता है लेकिन स्थानीय स्थानीय प्रतिलिपि में स्थानीय स्थानीय प्रतिलिपि में परिवर्तन खींचता है।

6

पुल कमांड अभिभावक भंडार से परिवर्तन खींचता है लेकिन वास्तव में भंडार में फ़ाइलों में कोई भी परिवर्तन नहीं करता है।

अद्यतन कमांड का उपयोग वास्तव में भंडार में फ़ाइलों को अद्यतन करने के लिए किया जाता है।

देखें: https://developer.mozilla.org/en-US/docs/Mercurial_FAQ#What%27s_the_difference_between_hg_pull_and_hg_update.3F

15

मर्क्युरियल, एक वितरित संशोधन नियंत्रण प्रणाली है, इसलिए आप पूरे रेपो इतिहास के साथ ही कोड के अपने संस्करण ("काम की नकल" कहा जाता है) है।

pull आपके स्थानीय रेपो में दूरस्थ परिवर्तन लाता है।

update आपकी स्थानीय प्रतिलिपि में नवीनतम संस्करण से मेल खाने के लिए अपनी कार्यशील प्रति को बदलता है।

तो यदि आप एक दूरस्थ शाखा क्लोन करते हैं और अद्यतन चलते रहते हैं, तो आपका कोड नहीं बदलेगा क्योंकि आप कभी भी रिमोट कोड डाउनलोड नहीं कर रहे हैं। यदि आप रन खींचते रहते हैं, तो आपका कोड नहीं बदलेगा क्योंकि आप कभी भी रिमोट कोड (कोड के आपके वर्किंग वर्जन पर इसे लागू करने) का उपयोग नहीं कर रहे हैं।

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