शुरुआती के लिए मर्क्यूरियल: द निश्चित प्रैक्टिकल गाइड


237

शुरुआती के लिए गिट द्वारा प्रेरित : निश्चित व्यावहारिक मार्गदर्शिका

यह व्यावहारिक उपयोग के लिए शुरुआती के लिए मर्क्यूरियल का उपयोग करने के बारे में जानकारी का संकलन है ।

शुरुआती - एक प्रोग्रामर जिसने बहुत अच्छी तरह से समझने के बिना स्रोत नियंत्रण को छुआ है।

व्यावहारिक - ऐसी स्थितियों को कवर करना, जिनमें से अधिकांश उपयोगकर्ता अक्सर सामना करते हैं - एक रिपॉजिटरी, ब्रांचिंग, मर्जिंग, खींचना / धक्का देना / से दूरस्थ रिपॉजिटरी बनाना, आदि।

नोट :

  • यह बताएं कि किसी चीज़ को कैसे लागू किया जाता है, इसके बजाय कैसे कुछ किया जाए।
  • प्रति उत्तर एक प्रश्न से निपटें।
  • स्पष्ट रूप से और यथासंभव संक्षिप्त रूप से उत्तर दें।
  • एक ही विषय पर एक नया उत्तर बनाने के बजाय किसी मौजूदा उत्तर को संपादित / विस्तारित करें।
  • कृपया अधिक जानने के लिए इच्छुक लोगों के लिए मर्क्यूरियल विकी या HG बुक का लिंक प्रदान करें

प्रशन:

स्थापना / सेटअप

कोड के साथ काम करना

टैगिंग, ब्रांचिंग, रिलीज़, बेसलाइन

अन्य

अन्य व्यापारिक संदर्भ

जवाबों:


16

फ़ाइलों को अनदेखा करने के लिए आप इसे कैसे कॉन्फ़िगर करते हैं?

इग्नोर को एक सामान्य टेक्स्ट फाइल में कॉन्फ़िगर किया गया है जिसे .hignign नामक आपकी रिपॉजिटरी के मूल में है। इसे सामान्य फ़ाइल की तरह ही जोड़ें:

hg add .hgignore

फ़ाइल मिलान, ग्लोब और regexp के लिए दो सिंटैक्स विकल्प उपलब्ध हैं। ग्लोब यूनिक्स की तरह फ़ाइल नाम का विस्तार है और रेगेक्सपी नियमित अभिव्यक्ति है। आप प्रत्येक पंक्ति में जोड़कर syntax: globया syntax: regexpएक पंक्ति में सक्रिय करते हैं । इसके बाद की सभी लाइनें अगले सिंटैक्स मार्कर तक उस सिंटैक्स का उपयोग करेंगी। आपके पास जितने चाहें उतने वाक्यविन्यास मार्कर हो सकते हैं। डिफ़ॉल्ट सिंटैक्स regexp है, इसलिए यदि आप केवल regexp का उपयोग करते हैं तो आपको किसी सिंटैक्स मार्कर की आवश्यकता नहीं है।

आप # के साथ टिप्पणी जोड़ सकते हैं

उदाहरण:

# python temporary files
syntax: glob
*.pyc

#editor autosaves
*~

# temporary data
syntax: regexp
temp

अनदेखा केवल अनवांटेड फ़ाइलों (यानी उन फ़ाइलों पर लागू होता है जो पहले से चेक नहीं किए गए हैं)। संस्करण नियंत्रण में आने वाली फ़ाइलों को अनदेखा करने के लिए, आप स्विच -I और -X का उपयोग कर सकते हैं।


7
यह उल्लेख करना उपयोगी हो सकता है कि यदि आप मैन्युअल रूप से hg addअनदेखा की गई फ़ाइलें Mercurial उन्हें ट्रैक करेंगे। उदाहरण के लिए, अगर आप की तरह फ़ाइलों का एक समूह है deploy-test.conf, deploy-production.conf, आदि और कर उन्हें संस्करण नहीं चाहता (वे उन्हें में पासवर्ड हो सकता है), लेकिन आप ऐसा संस्करण करना चाहते हैं deploy-template.confतो आप सिर्फ उपेक्षा कर सकते हैं deploy*और मैन्युअल रूप से जोड़ने deploy-templace.conf
स्टीव लोश

7

आप यह कैसे देखते हैं कि आपके पास क्या है, या आपके वर्तमान कोडबेस की स्थिति क्या है?

परिवर्तित की गई फ़ाइलों की सूची देखने के लिए:

$ hg status

यह अपनी स्थिति के साथ-साथ बदली गई प्रत्येक फ़ाइल को प्रिंट करेगा, जिसमें शामिल हो सकते हैं:

  • M- संशोधित। फ़ाइल बदल दी गई है और परिवर्तन नहीं किए गए हैं।
  • A- जोड़ा गया। फ़ाइल को पहले ट्रैक नहीं किया गया था, लेकिन यदि आप मर्क्यूरियल करते हैं तो इसे ट्रैक करना शुरू कर देंगे।
  • R- हटा दिया। फ़ाइल को पहले ट्रैक किया गया था, लेकिन अगर आप मर्क्युरियल करते हैं, तो इस और भविष्य में आने पर उसे ट्रैक करना बंद कर देगा।
  • ?- अनजान। वर्तमान में फ़ाइल को Mercurial द्वारा ट्रैक नहीं किया गया है। जब तक आप hg addइसे जोड़ने के लिए उपयोग नहीं करेंगे तब तक कमिटिंग का इस पर कोई प्रभाव नहीं पड़ेगा ।
  • !- गुम। फ़ाइल को ट्रैक कर लिया गया था लेकिन मरक्यूरियल इसे काम की प्रति में नहीं मिला।

उन परिवर्तनों को देखने के लिए जो वास्तव में फाइलों में किए गए हैं:

$ hg diff

6

आप एक नया प्रोजेक्ट / रिपॉजिटरी कैसे बनाते हैं?

$ hg init my-repository

5

मैं तोड़फोड़ के साथ कैसे इंटरफ़ेस करूं?

इसके तीन तरीके हैं:


परिवर्तित विस्तार एक मर्क्युरियल एक में एक मौजूदा सववर्सन रिपॉजिटरी को क्लोन होगा। यह मर्क्यूरियल के साथ आता है। यह इस तरह मोटे तौर पर काम करता है:

hg convert <Subversion URL or directory> <path to new Mercurial repository>

उदाहरण के लिए, यह सिक्सएप्टर मेम्च्च्ड रिपॉजिटरी के ट्रंक को हड़प लेगा।

hg convert http://code.sixapart.com/svn/memcached/trunk

विस्तार वृद्धिशील रूप से एक मलबे में एक तोड़फोड़ भंडार से नए संशोधन में ला सकता है (थोड़ा खींच की तरह)। हालाँकि यह मरकरी रिवायतों को लेने और उन्हें तोड़फोड़ (कोई धक्का नहीं) देने का समर्थन नहीं करता है। [XXX: यह सही है अगर यह गलत है]


Hgsubversion विस्तार । यह कई मायनों में सबसे परिष्कृत समाधान है क्योंकि यह सबवर्सन एपीआई का उपयोग सबवर्सन रिपॉजिटरी के साथ संवाद करने के लिए करता है। इसका उद्देश्य hg-svn पुल बनना है । यह संशोधनों (पूर्ण क्लोन, पुल, और पुश) के पूर्ण दौर-ट्रिपिंग की अनुमति देता है, हालांकि इस लेखन के रूप में [XXX: इसे संशोधित करें यदि / जब यह गलत हो जाता है] यह अभी भी विकास में है और अभी तक आधिकारिक रिलीज़ नहीं हुए हैं। एक परिणाम के रूप में यह केवल सबसे नवीनतम मर्क्यूरियल (इस लेखन के रूप में 1.3) के साथ काम करता है।

  • यह टैग्स और ब्रांच को मैप करता है (सभी टैग्स को पूर्व में tags/नामित शाखाओं से अलग करने के लिए)।
  • यह उन शाखाओं closed-branchesको बंद करने के लिए एक विशेष शाखा रखता है जो तोड़फोड़ में हटा दी जाती हैं।
  • इसके लिए आवश्यक है कि ट्रंक / शाखाओं / टैग के सम्मेलन के अनुसार सबवर्सन रिपॉजिटरी रखी जाए।
  • कमांड सेट आम तौर पर hg svn <subcommand>हालांकि इसका उद्देश्य उस बिंदु पर एकीकृत होना है जो आपको 'svn' भाग की आवश्यकता नहीं है (यानी यह किसी अन्य मर्क्यूरियल रिपॉजिटरी की तरह ही एक सबवर्सन क्लोन का इलाज करना चाहता है);

यह इस तरह काम करता है:

क्लोन:

hg svnclone <Subversion URL> 

या (केवल svn://URL के लिए)

hg clone <svn:// URL>

खींचें:

hg svn pull

धक्का दें:

hg svn push

भेजे:

hg svn incoming

निवर्तमान:

hg svn outgoing

संपूर्ण रिपॉजिटरी की जाँच:

hg svnclone http://code.sixapart.com/svn/memcached

Hgsvn उपयोगिता ( bitbucket पेड़ )। हाल ही में जब तक यह केवल आप क्लोन और एक तोड़फोड़ भंडार खींच, लेकिन hgsvn 0.1.7यह धक्का का समर्थन करता है। [मुझे नहीं पता कि यह कितना अच्छा पुश करता है। अधिक अनुभव वाले किसी व्यक्ति को इसे अपडेट करना चाहिए।] इसकी निम्नलिखित उल्लेखनीय विशेषताएं हैं:

  • यह हर SVN टैग के लिए एक Mercurial टैग बनाता है।
  • यह अपने एसवीएन संशोधन को चिह्नित करने के लिए हर बदलाव पर एक स्थानीय टैग लगाता है ।
  • यह प्रत्येक Mercurial संशोधन को नामांकित शाखा पर अपनी SVN शाखा के नाम पर रखता है। उदाहरण के लिए branches/some-featureजैसा होगा hg branch some-feature। यह ट्रंक को रखता है trunk(जब तक कि उपयोगकर्ता स्पष्ट रूप से इसे स्विच नहीं करता है)
  • यह शाखाओं और टैग की पहचान करने और उन्हें बनाने की कोशिश करेगा, लेकिन अगर यह नहीं कर सकता है तो बस उन्हें छोड़ देता है। यह तब आसान होता है जब सबवर्सन रिपॉजिटरी पारंपरिक ट्रंक / शाखाओं / टैग लेआउट का पालन नहीं कर रहा है।

यह इस तरह काम करता है:

क्लोन:

hgimportsvn <Subversion URL>

खींचें:

hgpullsvn

धक्का दें:

hgpushsvn

भेजे:

hgpullsvn -n

निवर्तमान:

hgpushsvn -n

संपूर्ण रिपॉजिटरी की जाँच:

hgimportsvn http://code.sixapart.com/svn/memcached

सिर्फ ट्रंक बाहर की जाँच:

hgimportsvn http://code.sixapart.com/svn/memcached/trunk

2
मैंने अभी उपयोग किया है hg convertऔर यह वास्तव में एक लंबा समय लगता है जब आपके पास कई कमिट्स के साथ एक svn रिपॉजिटरी होती है। स्थानीय रिपॉजिटरी को स्थापित करने से svnsyncचीजों को गति देने में बहुत मदद मिलती है - खासकर जब आपको इसे कई बार करने की आवश्यकता होती है, क्योंकि आपके पास आपकी कन्वर्ट कमांड में कुछ गलत विकल्प थे।
डेबिलीस्की

मुझे लगता है कि ये सभी विधियां तेज़ हैं यदि आपके पास एसवीएन रिपॉजिटरी की एक स्थानीय प्रति है। लेकिन आप हमेशा पूर्ण रिपॉजिटरी पर नहीं मिल सकते हैं? मुझे लगा कि svnsyncकेवल URL ही नहीं, रिपॉजिटरी की वास्तविक फ़ाइलों को एक्सेस करने की आवश्यकता है।
क्वार्क

कृपया ध्यान दें कि hgsvn अब रखरखाव मोड में है , इसलिए इसे अब सक्रिय रूप से विकसित नहीं किया जा रहा है। वे इसके बजाय hgsubversion का उपयोग करने की सलाह देते हैं।
जॉन एल।

5

आप किसी फ़ाइल के दो संशोधनों, या अपनी वर्तमान फ़ाइल और पिछले संशोधन की तुलना कैसे करते हैं?

दोनों का उपयोग करें hg diff। जब hg diffकाम की प्रतिलिपि में सभी परिवर्तन और टिप (नवीनतम प्रतिबद्ध) का उपयोग किया जाता है।

"आप किसी फ़ाइल के दो संशोधनों की तुलना कैसे करते हैं?"

$ hg diff -r{rev1} -r{rev2} {file.code}

उपरोक्त कमांड "file.code" के Rev1 और Rev2 के बीच अलग-अलग दिखाई देगा।

"आप अपनी वर्तमान फ़ाइल और पिछले संशोधन की तुलना कैसे करते हैं?"

$ hg diff {file.code}

उपरोक्त कमांड "file.code" के वर्तमान संस्करण और अंतिम पुनरीक्षण (सबसे अंत में शुरू) के बीच अलग-अलग दिखाई देगा।

: डी


4

आप फ़ाइलों के एक विशेष सेट के लिए संशोधनों का एक विशेष सेट 'टैग' या 'रिलीज़' कैसे करते हैं ताकि आप हमेशा बाद में उसे खींच सकें?

$ hg tag my-tag

आप एक विशेष टैग रिपॉजिटरी बनाने के लिए अपनी रिपॉजिटरी को क्लोन भी कर सकते हैं ।

$ hg clone working-repository my-tag-repository

3
क्यों नहीं hg tag my-tag?
स्टीव लोश

4

आप कैसे शाखा करते हैं?

$ hg शाखा मेरी-शाखा

या

$ hg क्लोन मूल-रिपॉजिटरी माय-ब्रांच

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


4
यह हैवीवेट तरीका है जो लोगों को सलाह देने के लिए हमेशा मर्क्यूरियल लोगों का मजाक उड़ाता है। शुरुआती लोगों के लिए एक हल्का, अधिक परिचित तरीका होगाhg branch my-branch
स्टीव लूश

8
आपको ध्यान देना चाहिए, कि ये दो पूरी तरह से अलग-अलग ऑपरेशन हैं।
स्टेचूगैग

2
मुझे यह मार्गदर्शिका मिली जो मर्क्यूरियल में शाखा लगाने के
mbillard

Hg में हल्की शाखाओं के लिए जो स्थायी नहीं हैं (hg शाखा के रूप में)
मर्क्युलर

GoodEnough द्वारा लिंक किया गया लेख बुकमार्क का उपयोग करके एक और हल्का तरीका प्रदान करता है। उन बदलावों के लिए बहुत अच्छा लगता है जो अपनी शाखा के लिए महत्वपूर्ण नहीं हैं
केसबैश

4

Mercurial के लिए अच्छा GUI / IDE प्लगइन?

जीयूआई

  • बस किसी भी ओएस के बारे में TortoiseHg । विंडोज एक्सप्लोरर एकीकरण शामिल है। यह लिनक्स और कुछ अन्य ओएस में भी काम करता है: एस मैक्स ओएस एक्स सहित। यह कुछ हद तक क्लूनी इंटरफ़ेस है और पहली बार में उपयोग करने के लिए थोड़ा अजीब है, लेकिन यह बहुत पूर्ण और शक्तिशाली है।
  • Murky Mac OS X 10.5 या बाद के संस्करण पर चलता है। मर्को रिपॉजिटरी और बेसिक कमांड की खोज के लिए अच्छा है, लेकिन आपको यह जानना होगा कि कमांड लाइन का उपयोग कैसे करें।
  • MacHg एक अच्छा Mac OS X Gui है जिसमें Murky की तुलना में थोड़ी अधिक कार्यक्षमता और पॉलिश है, लेकिन आपको अभी भी इसके साथ कमांड लाइन की आवश्यकता होगी।
  • SourceTree मूल रूप से एक मैक क्लाइंट है, जिसका विंडोज संस्करण अभी हाल ही में उपलब्ध है। बहुत अच्छा यूआई (कम से कम ओएस एक्स पर), शेल सहित अधिकांश एचजी सुविधाओं का समर्थन करता है।

प्लगइन्स


3

आप परिवर्तन कैसे करते हैं?

इस कमांड को वर्तमान लोकल * मर्करी रिपॉजिटरी से इनवाइट करें

hg commit [OPTION]... [FILE]...

उपनाम: ci

  • एक स्थानीय व्यापारिक भंडार में वर्तमान निर्देशिका के अंदर .g होता है

विकल्प कहां हो सकता है:

 -A --addremove     mark new/missing files as added/removed before committing
    --close-branch  mark a branch as closed, hiding it from the branch list
 -I --include       include names matching the given patterns
 -X --exclude       exclude names matching the given patterns
 -m --message       use <text> as commit message
 -l --logfile       read commit message from <file>
 -d --date          record datecode as commit date
 -u --user          record user as committer

एक उदाहरण आदेश होगा:

hg commit -m "added readme" README

नोट :

  • यदि फ़ाइलों की सूची को छोड़ दिया जाता है, तो "hg स्थिति" द्वारा रिपोर्ट किए गए सभी परिवर्तन प्रतिबद्ध होंगे।
  • यदि आप मर्ज का परिणाम दे रहे हैं, तो कोई फ़ाइल नाम या -I / -X फ़िल्टर प्रदान न करें।
  • यदि कोई प्रतिबद्ध संदेश निर्दिष्ट नहीं है, तो कॉन्फ़िगर संपादक को संदेश के लिए संकेत देने के लिए शुरू किया गया है।

3

मर्क्यूरियल की स्थापना कैसे करें?

मर्क्यूरियल अपनी विन्यास जानकारी ~/.hgrcको * निक्स सिस्टम और %UserProfile%\mercurial.iniविंडोज सिस्टम पर स्टोर करता है । ( %UserProfile%आमतौर "C:\Documents and Settings\[username]\"पर विंडोज 2000 या विंडोज एक्सपी सिस्टम पर होता है, और आमतौर C:\Users\[username]\पर विंडोज विस्टा और विंडोज 7 सिस्टम पर।)

एक शुरुआती बिंदु के रूप में, आपको अपने मर्क्यूरियल यूज़रनेम को अपने .hgrcया निम्नलिखित में रखकर सेट करना चाहिए mercurial.ini:

# This is a Mercurial configuration file.
[ui]
username = Firstname Lastname <email.address@example.net>

विंडोज सिस्टम पर TortoiseHg उपयोगकर्ता वैकल्पिक रूप से चला सकते हैं hgtk userconfig

" Mercurial: The Definitive Guide " के अध्याय 2 में " एक मर्क्यूरियल कॉन्फ़िगरेशन फ़ाइल बनाना " भी देखें ।


3

आप शाखाओं का विलय कैसे करते हैं?

$ cd repository-where-i-want-to merge
$ hg pull branch-i-want-to-merge
$ hg merge # if necessary

एक नए व्यापारिक उपयोगकर्ता के रूप में, और सामान्य रूप से किसी नए स्रोत के नियंत्रण के रूप में, मैं वास्तव में इस उत्तर को नहीं समझता। क्या आप अपनी पोस्ट को स्पष्ट और विस्तारित कर सकते हैं? मुझे अभी भी काफी समझ नहीं है कि मर्ज कमांड का उपयोग कैसे करें।
जामिन ग्रे

3

Mercurial कैसे स्थापित करें?

कृपया अच्छी तरह से संपादित करें यदि आपने लिनक्स पर स्रोत से स्थापित किया है, या विंडोज इंस्टालर का उपयोग किया है।

मैक ओएस एक्स 10.4 (टाइगर), 10.5 (तेंदुआ)

पायथन के easy_install का उपयोग करें ( सेप्टुपूल के साथ ):

sudo easy_install mercurial

यह नवीनतम संस्करण ढूंढता है (लेखन के समय 1.3.1) और इस पर स्थापित होता है:

/Library/Frameworks/Python.framework/Versions/2.6/bin/

Python 2.6 के साथ यह Mercurial OS X इंस्टॉलर पैकेज (26.1 जुलाई को 26 जुलाई 2009 तक) के आसपास हो जाता है और शिकायत करता है कि इसे Python 2.5 की जरूरत है। से प्रलेखन , ऐसा लगता है फिंक और macports संस्करण 1.2 से स्थापना करें।

लिनक्स

अधिकांश स्पष्ट लिनक्स पैकेज वर्तमान संस्करण से पीछे रह जाते हैं, इसलिए easy_install (जैसा कि ऊपर) का उपयोग करें या मर्क्यूरियल टारबॉल डाउनलोड करें , संग्रह को निकालें, मर्क्यूरियल डायरेक्टरी में बदलाव करें, और चलाएँ:

$ make
$ sudo make install    # do a system-wide install
$ hg debuginstall      # sanity check
$ hg                   # see help

( मर्क्यूरियल का परिचय, एक वितरित संस्करण नियंत्रण प्रणाली से )

खिड़कियाँ

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

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


1
स्रोत से व्यापारिक निर्माण करने के लिए, अजगर को हेडर की आवश्यकता होगी। पैकेज-उन्मुख वितरण का उपयोग करने वालों के लिए अजगर-देव या अजगर-हिरन स्थापित करें।
निकोलस डुमाज़ेट

3

आपको नवीनतम कोड कैसे मिलेगा?

मरकरी याद करते हैं कि जहाँ (.hg / hgrc) से एक रिपॉजिटरी को क्लोन किया गया था ताकि आप बस चला सकें:

hg pull

मूल-भंडार से नवीनतम कोड खींचने के लिए। (यह कार्यशील निर्देशिका को अद्यतन नहीं करता है)

hg update

कार्यशील निर्देशिका को अद्यतन करने के लिए।

hg pull -u

एक बार में एक पुल और एक अद्यतन दोनों करने के लिए।


1
.hg/hgrcजब आप एक क्लोन करते हैं, तो मूल रिकॉर्ड किया जाता है , इसलिए जब आप खींचते हैं या धक्का देते हैं तो आपको इसे निर्दिष्ट करने की आवश्यकता नहीं होती है। यदि आप चाहते हैं तो आप [paths]अनुभाग में अधिक पथ जोड़ सकते .hg/hgrcहैं।
मार्टिन गेइस्लर

3

आप कोड की जांच कैसे करते हैं?

hg clone [OPTION]... SOURCE [DEST]

विकल्प कहां हो सकता है:

 -U --noupdate      the clone will only contain a repository (no working copy)
 -r --rev           a changeset you would like to have after cloning
    --pull          use pull protocol to copy metadata
    --uncompressed  use uncompressed transfer (fast over LAN)
 -e --ssh           specify ssh command to use
    --remotecmd     specify hg command to run on the remote side

जहां स्रोत रिपॉजिटरी में स्थित मूल फाइलों का स्रोत है, जहां यह एक दूरस्थ URL या फाइल सिस्टम निर्देशिका हो सकती है। उदाहरण के लिए:

और गंतव्य वह है जहां स्रोत कोड आपके स्थानीय फाइल सिस्टम में स्थित होगा।


1

आप परिवर्तन कैसे करते हैं?

$ hg commit -m "Commit message"

1

जब आप धक्का देते हैं तो आप कैसे देखते हैं कि अपस्ट्रीम रिपॉजिटरी में क्या बदलाव भेजे जाएंगे?

hg outgoingडिफ़ॉल्ट रिपॉजिटरी में सेट किए जाने वाले परिवर्तनों की सूची प्राप्त करने के लिए उपयोग करें :

$ hg outgoing

वास्तविक कोड परिवर्तन प्राप्त करने के लिए, -p( --patch) का उपयोग करें । यह प्रत्येक बदलाव को पूर्ण रूप से आउटपुट करेगा:

$ hg outgoing -p

1

आप किसी फ़ाइल को रिपॉजिटरी से कैसे निकालते हैं?

किसी फ़ाइल को रिपॉजिटरी से निकालने के लिए, और इसे अगले कमिट पर हटा दिया गया है:

$ hg remove {file(s)}

किसी फाइल को रिपॉजिटरी से हटाने के लिए, लेकिन उसे डिलीट न करें

$ hg remove -Af {file(s)}

या मर्क्यूरियल 1.3 से

$ hg forget {file(s)}

1

आप कोड के पिछले संस्करण में वापस कैसे जाएंगे?

से इस सवाल

$ hg update [-r REV]

@ भवन: यदि बाद में आप प्रतिबद्ध हैं, तो आप प्रभावी रूप से एक नई शाखा बनाएंगे। तब आप केवल इस शाखा पर काम करना जारी रख सकते हैं या अंततः मौजूदा को इसमें मिला सकते हैं।


1

आप एक चेंजेसट को कैसे वापस लाते हैं?

कुछ विकल्प उपलब्ध हैं

आसान तरीका (बैकआउट सिंगल चेंज सेट)

$ hg backout -m 'back out second change' tip
reverting myfile
changeset 2:01adc4672142 backs out changeset 1:7e341ee3be7a
$ cat myfile
first change

हार्ड वे (मैन्युअल रूप से अलग हैं और लागू होते हैं)

चरण 1 : पुनरीक्षण 107 और 108 के बीच जो बदला है उसे वापस करने के लिए एक पैच फ़ाइल बनाएँ:

hg diff -r107 -r108 --reverse  > revert-change.patch

(वैकल्पिक रूप से, hg diff -r108 -r107 जो कोई --reverse ही काम नहीं करेगा)

चरण 2 : पैच फ़ाइल लागू करें:

patch -p1 < revert-change.patch

उदाहरण के लिए कुछ भिन्न लागू करने में विफल हो सकते हैं:

Hunk #3 FAILED at 517.
1 out of 3 hunks FAILED -- saving rejects to file 'foo/bar.c.rej'

.Rej फ़ाइल में उस अंतर की सामग्री होगी जो लागू करने में विफल रही, आपको एक नज़र रखना होगा।


1
यह क्या hg backoutहै के लिए नहीं है?
विम कॉइनन

हां, हालांकि hg बैकआउट केवल एक ही बदलाव आईडी का समर्थन करता है। निश्चित रूप से उल्लेख किया जाना चाहिए, मैं तदनुसार अपडेट
करूंगा

1

आप किसी फ़ाइल या रिपॉजिटरी के संशोधन का इतिहास कैसे देखते हैं?

संपूर्ण रिपॉजिटरी या फ़ाइलों के संशोधन इतिहास को दिखाने के लिए

$ hg log {file(s)}

या

$ hg history {file(s)}

और सूची को उल्टे क्रम में देखना है

$ hg log -r:

1

आप एक शाखा के भागों को दूसरी शाखा में कैसे मिलाते हैं?

अपने .hg / hgrc में 'प्रत्यारोपण' एक्सटेंशन सक्षम करें

[extensions]
transplant=

लक्ष्य शाखा को लोड करें फिर लक्ष्य संशोधन को ट्रांसप्लांट करें।
उदाहरण के लिए: चेरी: संशोधन'१ से शाखा ch फू ’से वर्तमान शाखा में

$ hg transplant -b foo 81

मर्क्यूरियल के नए संस्करणों को प्रत्यारोपण विस्तार की आवश्यकता नहीं है। आप ऐसा करने के लिए अंतर्निहित graftकमांड का उपयोग कर सकते हैं । hg help graftअधिक जानकारी के लिए
DOOMANiac

1

आप एक विशिष्ट परिवर्तन से एक पैच कैसे निकालते हैं?

$ hg export -o patchfile changeset

इसके बाद आप इसे दूसरी शाखा में आयात कर सकते हैं:

$ hg import patchfile
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.