2013-08-24 6 views
5

मैं branch-a में काम कर रहा था जब मुझे default शाखा में एक असंबंधित बग मिला। इसलिए, मैं अपने कुछ परिवर्तन default पर प्रतिबद्ध करना चाहता हूं, फिर वर्तमान शाखा में default विलय करें, और काम करना जारी रखें।एचजी: किसी अन्य शाखा में कुछ बदलावों को कम करें

जहां तक ​​मुझे पता है, Mercurial सीधे किसी अन्य शाखा में आने की अनुमति नहीं देता है, इसलिए मुझे पहले डिफ़ॉल्ट शाखा में स्विच करना होगा। समस्या यह है कि, मैं केवल डिफ़ॉल्ट शाखा को चेकआउट नहीं कर सकता, क्योंकि अन्य परिवर्तन विवाद पैदा करेंगे। एक वर्कफ़्लो मैं सोच सकता हूं कि शेल्व करना है, चेकआउट डिफ़ॉल्ट है, फिक्स, प्रतिबद्ध, चेकआउट शाखा-ए से संबंधित फ़ाइलों को असफल करें, डिफ़ॉल्ट रूप से विलय करें, और आखिरकार, बाकी फ़ाइलों को अनदेखा करें। क्या इसे पूरा करने का कोई आसान तरीका है? (अतिरिक्त रिकार्ड एक्सटेंशन की शक्ति का उपयोग करता है, तो बग सुधार के और शाखा-एक के परिवर्तन कुछ फ़ाइल (रों में होता है) - के लिए प्रतिबद्ध फ़ाइल का केवल जरूरत जिसे)

उत्तर

0
  • फ़ाइलों का केवल सबसेट, branch-a परिवर्तन से संबंधित सौंपे भी changeset एक

आप MQ एक्सटेंशन नहीं है:

  • branch-a changeset बी के रूप में (ए के बच्चे)
  • रिबेस बी (रिबेस Ext साथ में परिवर्तन के बाकी प्रतिबद्ध ension) ओडर में --keep विकल्प के साथ default शाखा में changeset मूल स्थान भी

में बी के लिए आप MQ विस्तार है, तो

  • काम कर-निर्देशिका के साथ नए पैच में परिवर्तन
  • unapply MQ-पैच बनाएं
  • अद्यतन default करने के लिए
  • लागू पैच
  • टेस्ट, परीक्षण ...
  • समाप्त पैच (स्थायी changeset में कनवर्ट करें)
  • ग्राफ्ट इस changeset केवलbranch-a शाखा
+0

धन्यवाद में! मैं केवल विद्रोह के बारे में बेहद जागरूक था, लेकिन अब मैं इसका मुद्दा देखता हूं। – alekop

+0

ऐसा करने के लिए रीबेज और एमक-पैच तरीकों को जानना अच्छा होता है। हालांकि शेल्व -> स्विच शाखा -> असहज मेरे लिए आसान लगता है। फिर भी धन्यवाद। –

संबंधित मुद्दे