2012-09-11 12 views
7

हटाकर मैंने स्थानीय रूप से फ़ाइलों का गुच्छा किया है, लेकिन धक्का नहीं दिया है। तो मूल रूप से मैं जो करना चाहता हूं वह है कि यह मेरी प्रतिबद्धता को हटा दें, फिर कुछ अन्य परिवर्तनों को दबाएं।TortoiseHG:

मैं बैकआउट-आईएनजी द्वारा प्रतिबद्धता को हटा सकता हूं, तो मुझे स्थानीय रूप से प्रतिबद्ध करना है ताकि इसे वास्तव में स्थानीय रूप से हटा दिया जा सके।

तो मेरा सवाल चल रहा है, अगर मैं धक्का करता हूं, तो क्या मेरी आकस्मिक प्रतिबद्धता और इसके संबंधित रिवर्सन लॉग सार्वजनिक रूप से दिखाई देंगे?

उत्तर

15

ऐसा लगता है कि hg rollback वह आदेश है जो आप चाहते हैं।

hg backout <REV> एक नई प्रतिबद्धता बनाता है जो <REV> में किए गए परिवर्तनों को उलट देता है। मूल प्रतिबद्धता और बैकआउट प्रतिबद्ध दोनों आपके इतिहास में बने रहेंगे। यह आपके द्वारा सार्वजनिक स्थान पर धकेलने के बाद खराब प्रतिबद्धता को ठीक करने के लिए कुछ विकल्पों में से एक है।

हालांकि इस मामले में आपने अभी तक जनता को धक्का नहीं दिया है, इसलिए बेहतर समाधान हैं।

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

यदि आपके इतिहास में खराब प्रतिबद्धता कहीं और है (लेकिन अभी भी एक सार्वजनिक रेपो को धक्का नहीं दिया गया है), तो आप अपने इतिहास के उस हिस्से को फिर से लिखने के लिए mq extension का भी उपयोग कर सकते हैं।

2

आप hg rollback के बजाय hg strip -r . --keep का उपयोग कर सकते हैं। hg backout केवल तभी जरूरी होगा जब आपने अपनी प्रतिबद्धता को धक्का दिया हो।

0

आपके प्रश्न का सरल उत्तर हाँ है।

यदि आप बैकआउट करते हैं, तो यह आपके इतिहास में दिखाई देगा।
जैसा कि पहले सुझाया गया था, आप एक स्ट्रिप करना चाहते हैं।

यह Mercurial के लिए एक विस्तार है।
https://www.mercurial-scm.org/wiki/StripExtension