git - In Mercurial, when Peter "hg clone" me, and I commit and he pull and update, he gets my version, but not when I rollback? -


यही है, Mercurial में, अगर पीटर ने मुझे

  hg क्लोन से क्लोन किया है c: \ Mycode e: \ code  

उसकी ई में: \ code

मान लें कि फ़ाइल code.txt है और इसमें टेक्स्ट कोड 7 है

अब, जब मैं उसे कोड 11 में बदलता हूं और hg प्रतिबद्ध करता हूं, तो वह अपना कोड एचजी पुल का उपयोग कर सकता है और एचजी अद्यतन अब उसका संस्करण कहता है <कोड> कोड 11 है

लेकिन अगर मैं तय करता हूं कि परिवर्तन गलत था और एचजी रोलबैक था, तो मेरी रिपॉजिटरी में 7 संस्करण होना चाहिए, जबकि कार्यशील निर्देशिका में 11 संस्करण होना चाहिए।

इसलिए जब पीटर एक hg पुल और एचजी अपडेट करता है, तो उसे अपने वर्तमान रिपॉजिटरी तक सिंक करना चाहिए, जो कि 7 , लेकिन मुझे पता चला कि यह मामला नहीं है - वह अभी भी 11 संस्करण प्राप्त करता है ऐसा क्यों है? क्या वह रोल किया गया वापस कोड प्राप्त कर सकता है ( 7 )? क्या गिट भी उसी तरह से व्यवहार करता है?

अपडेट: मैंने सोचा कि प्रतिबद्ध उसी तरह रिपॉजिटरी को प्रभावित करता है जिस तरह से रोलबैक को प्रभावित करता है रिपॉजिटरी - प्रतिबद्ध और रोलबैक दोनों डीबी लेनदेन शब्द हैं ... और अब हम कह रहे हैं commit रिपॉजिटरी को प्रभावित करता है लेकिन rollback नहीं करता है? यहां नियम क्या है?

अपडेट 2: इस बिंदु पर, यदि मैरी

  hg क्लोन c: \ mycode e: \ marycode  

इस बिंदु पर, उसे वास्तव में 7 संस्करण मिलता है तो, मैरी को 7 मिलता है पीटर को 11 मिलता है और वे दोनों "अप टू डेट" हैं? यह क्या है?

hg पुल नीचे खींच नया एक दूरस्थ रिपॉजिटरी से परिवर्तनों - लेकिन यह उन लोगों को नहीं हटाता जो दूरस्थ रूप से मौजूद नहीं हैं अन्यथा, एक पुल करने से वह अपने खुद के काम को मिटा देगा जो कि पहले से ही रिमोट तक नहीं पहुंच पाई थी। इस प्रकार, खींचने वाले बदलावों से छुटकारा नहीं मिलता है, और फिर रिमोट ने इसे वापस रोल किया, क्योंकि हड़पने के लिए कोई नया परिवर्तन नहीं है।

यदि आप एक नई प्रतिबद्धता बनाते हैं जो लुढ़का हुआ है राज्य, तो वह कम हो जाएगा और पीटर इसे देखेगा।

दूसरे शब्दों में, आपको क्या करने की ज़रूरत है hg revert -r & lt; previous-rev & gt; एक पुराने संस्करण को देखने के लिए जिसे आप वापस बदलना चाहते हैं, फिर पुराने संशोधन के आधार पर एक नई प्रतिबद्धता बनाने के लिए hg commit का उपयोग करें, और उसके बाद लोगों को प्रतिबद्ध करना है।

< / div>

Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -