नहीं वास्तव में।
hg pull
अन्य रिपोजिटरी से संशोधन पकड़ लेता है और उन्हें भंडार के अपने क्लोन में स्थानीय स्तर पर उपलब्ध संशोधन करने के लिए कहते हैं, लेकिन अपने काम की नकल अद्यतन नहीं करता है - केवल अपने भंडार (जो, एचजी की तरह DCVS के लिए/गिट/आदि एक कामकाजी प्रति के समान नहीं है)।
hg update
आपकी वास्तविक कार्य प्रतिलिपि को आपके स्थानीय भंडार में नवीनतम संशोधन में अपडेट करता है।
यह सबवर्जन से अलग है क्योंकि svn में, आपके "स्थानीय भंडार" जैसी कोई चीज़ नहीं है - सर्वर पर एकमात्र भंडार है; आपके पास स्थानीय रूप से एक कार्यशील प्रतिलिपि है। इसलिए update
केवल एक ही कमांड है, क्योंकि Mercurial के pull
और उसके बाद update
का विरोध किया गया है।
मर्क्युरियल के लिए svn update
के बराबर hg pull --update
, जो hg pull
और फिर hg update
एक के बाद एक कर के बराबर है किया जाएगा।
एक "केंद्रीय" रेपो साथ DCVS के लिए एक अंत से अंत कार्यप्रवाह इस तरह दिखता है:
- एक कुछ परिवर्तन पर
hg commit
करता है।
- ए
hg push
उन्हें केंद्रीय भंडार को धक्का देने के लिए करता है।
- बी
hg pull
केंद्रीय भंडार से अपने स्वयं के क्लोन में खींचने के लिए करता है।
- बी
hg update
उनके कामकाजी प्रति को अपने क्लोन में किए गए परिवर्तनों को दर्शाने के लिए अद्यतन करने के लिए करता है।
एक केंद्रीय रेपो बिना सिस्टम में, यह बजाय कुछ इस तरह दिखेगा:
- एक कुछ परिवर्तन पर
hg commit
करता है।
- बी, जिन्होंने ए के रेपो को क्लोन किया है, उन परिवर्तनों को चाहता है, और इस तरह ए 0 रेपो से सीधे
hg pull
करता है।
- बी
hg update
का उपयोग अपनी कार्य प्रतिलिपि को परिवर्तनों में अपडेट करने के लिए करता है।
इसके अलावा, svn revert
के बराबर hg revert
है। :)
यह एक अच्छा जवाब है। यह सिर्फ एचजी व्याख्या करने की कोशिश नहीं करता है। यह वास्तव में svn की तुलना में इसे समझाने की कोशिश करता है, जिसे मैंने विशेष रूप से मेरे प्रश्न में पूछा था। यह न केवल मतभेदों को समझाता है, जिन्हें दूसरों ने दृढ़ता से बल दिया है, यह समानताएं बताता है। यह उत्तर उन सभी संबंधित एचजी कमांड को कवर करने का भी प्रयास करता है जिनके बारे में मैं उलझन में हूं और एचजी पुल --rebase पर कम ध्यान केंद्रित नहीं करता है। – allyourcode
एक अनुवर्ती प्रश्न यह था कि मैं यह था: ऐसा लगता है जैसे एचजी अपडेट केवल उपयोगी होगा यदि आपने कभी भी कोई काम नहीं किया है (जैसा कि 1 में है), क्योंकि उसके बाद, आप एक शाखा से काम कर रहे होंगे कि कोई भी और इसके बारे में जानता है। दोबारा, यह एक कार्य प्रवाह मानता है जिसमें एक धन्य केंद्रीय रेपो शामिल है जो एक टीम के सदस्य धक्का देते हैं और खींचते हैं। – allyourcode
@allyourcode यदि आपके पास स्थानीय परिवर्तन हैं, तो, आपको अपडेट के बजाय विलय की आवश्यकता है। हालांकि, अद्यतन यह भी है कि आप संशोधन या नामित शाखाओं को कैसे स्विच करते हैं, और आपके परिवर्तनों को ऊपर की ओर धकेलने के बाद उपयोगी होता है। यदि आपको विलय करने और अद्यतन करने का प्रयास करने की आवश्यकता है, तो अपडेट विफल हो जाएगा, इसलिए मैं आमतौर पर पहले अद्यतन का उपयोग करता हूं और विफल होने पर विलय करता हूं। –