मैं मर्कुरियल के लिए अपेक्षाकृत नया हूं और मेरी टीम अभी सबवर्सन के प्रतिस्थापन के रूप में इसे आजमा रही है।अकेले अन्य संशोधनों को छोड़कर एक फ़ाइल को प्रतिबद्ध करने और धक्का देने का सबसे आसान तरीका क्या है?
मेरी कार्य निर्देशिका में अन्य संशोधनों को छोड़कर मैं एक और फाइल को एक और फाइल को कैसे दबा सकता हूं (या कम से कम अन्य भंडार में नहीं धकेल दिया जाता है)?
यह डेटाबेस माइग्रेशन के साथ हमारे लिए होता है। हम स्रोत नियंत्रण में माइग्रेशन करना चाहते हैं ताकि डीबीए इसे देख और संपादित कर सके, जबकि हम उस डेटाबेस माइग्रेशन के साथ कोड संशोधनों पर काम कर रहे हैं। परिवर्तन अभी तक तैयार नहीं हैं इसलिए हम उन सभी को धक्का नहीं देना चाहते हैं।
तोड़फोड़ में, मैं बस करना चाहते हैं:
svn add my_migration.sql
# commit only the migration, but not the other files I'm working on
svn commit -m "migration notes" my_mygration.sql
और स्थानीय स्तर पर काम जारी रखने के।
यह Mercurial के साथ काम नहीं करता है क्योंकि जब मैं इसे अन्य भंडार में डाल रहा हूं, यदि इसमें कोई बदलाव है जो मैंने नहीं खींचा है, तो यह चाहता है कि मैं उन्हें नीचे खींचूं, उन्हें मर्ज करें, और प्रतिबद्ध करें कि भंडार में विलय करें। विलय के बाद प्रतिबद्धता आपको फ़ाइलों को छोड़ने की अनुमति नहीं देती है, इसलिए यह आपको अपने स्थानीय भंडार में सब कुछ करने के लिए मजबूर करता है।
सबसे आसान बात यह है कि मैं समझ सकता हूं कि फ़ाइल को मेरे स्थानीय भंडार में फाइल करना है, मेरे स्थानीय भंडार को क्लोन करना, वास्तविक भंडार से कोई भी नया परिवर्तन प्राप्त करना, उन्हें मर्ज करना और विलय करना है, और वे मेरे परिवर्तनों को धक्का देते हैं।
hg add my_migration.sql
hg commit -m "migration notes" my_migration.sql
cd ..
hg clone project project-clone
cd project-clone
hg fetch http://hg/project
hg push http://hg/project
यह काम करता है, लेकिन ऐसा लगता है कि मैं कुछ आसान याद कर रहा हूँ, किसी तरह से मेरी काम कर निर्देशिका में पहले से ही फाइलों को अनदेखा करने की अस्थिर बताने के लिए, बस मर्ज करते हैं और फ़ाइलों के साथ भेजने लगता है। मुझे संदेह है कि Mercurial कतार यह कर सकते हैं, लेकिन मैं पूरी तरह से mq पूरी तरह से grok नहीं है।
नीचे जोश मैथ्यूज के लिए धन्यवाद, शेल्व कमांड ठीक वही है जो मैं ढूंढ रहा हूं। मैं कुछ Googling के साथ किसी भी महान स्थापित निर्देशों को देखने नहीं किया, इसलिए यहां संयुक्त सामान मैं हो यह काम करने के लिए प्रयोग किया जाता है:
के साथ प्राप्त करें: परियोजना में
hg clone http://freehg.org/u/tksoh/hgshelve/ hgshelve
केवल फ़ाइल (वर्तमान में) hgshelve.py फ़ाइल है।
अपने ~/टांड़ एक्सटेंशन जोड़ने के लिए .hgrc संशोधित है, जहां आप रेपो क्लोन की ओर इशारा करते:
[extensions]
hgshelve=/Users/ted/Documents/workspace/hgshelve/hgshelve.py
तो फिर तुम hg shelve
और hg unshelve
अस्थायी रूप से परिवर्तन दूर स्टोर करने के लिए कर सकते हैं। यह आपको सामानों को दूर करने के लिए चुनने और चुनने के लिए "पैच हंक" स्तर पर काम करने देता है। यह फ़ाइल को जोड़ने के लिए सूचीबद्ध फ़ाइल को शेल्व करने के लिए प्रकट नहीं हुआ था, केवल संशोधनों के साथ रेपो में पहले से ही फ़ाइलें।
यह एक विशेषता यह है कि मैं वास्तव में Git में मूल्य (मैं इसे हर समय का उपयोग करें) है, और यह कठिन मुझे स्विच करने के लिए के लिए होगा ... –
यह वास्तव में नहीं है कि मैं अब चीजें कैसे करूं कि मैंने एचजी के बारे में बहुत कुछ सीखा है। अब मैं स्थानीय रूप से परिवर्तन करूँगा, पिछले संशोधन पर वापस अपडेट करें और वहां मेरे परिवर्तन करें और "एचजी पुश - रेव।" केवल वर्तमान शाखा को बाहर निकालना। फिर दूसरे काम पर वापस अपडेट करें और वहां जारी रखें। अगर मैंने फैसला किया कि मैं अब और काम नहीं चाहता था, तो मैं इसे "एचजी स्ट्रिप" कर दूंगा। बहुत आसान और आपको फ़ाइलों के खारिज किए गए शिकारी के बारे में चिंता करने की आवश्यकता नहीं है, सबकुछ ट्रैक किया जाता है और स्रोत नियंत्रण में होता है। स्पष्टीकरण के लिए –