2009-10-20 8 views
15
  1. मैं एक दूरस्थ भंडार को Machine A, committed मेरे परिवर्तन पर एक मर्क्युरियल परियोजना और उन्हें uploadedinitialized"नए रिमोट हेड बनाता है" विलय के बाद रिमोट रिपोजिटरी में धक्का देना - क्या यह बुरा है?

  2. तब मैं cloned कि Machine B, committed कुछ अतिरिक्त परिवर्तन पर भंडार और एक ही दूरदराज के भंडार के लिए उन्हें uploaded

दोनों मामलों में, मैं एक ही कमांड के साथ परिवर्तन अपलोड:

hg push https://username:[email protected]/user/repository/ 

अब मैं दूरदराज के भंडार और से एड मशीन एक पर वापस कर रहा हूँ और मैं pull है ** * * merg ** एड किसी भी ** KDiff3 जीयूआई उपकरण का उपयोग कर आदेशों का उपयोग करते दो changesets के बीच परिवर्तन:

hg pull 
hg merge 
hg commit 

हो wever सकता है, जब मैं इस पुल के बाद दूरदराज के भंडार के लिए वापस मशीन एक से नवीनतम परिवर्तन धक्का और विलय करने के लिए प्रयास करते हैं, मैं यह संदेश प्राप्त:

hg push https://username:[email protected]/user/repository/ 
pushing to https://username:[email protected]/user/repository/ 
searching for changes 
abort: push creates new remote heads! 
(did you forget to merge? use push -f to force) 

यह क्यों कहता है "आप मर्ज करना भूल गए?" - मैंने विलय पूरा किया।

क्या धक्का को मजबूर करना और "नए रिमोट हेड" बनाना बुरा है?

यदि हां, तो मैं इससे कैसे बचूं?

अद्यतन:

मैं "hg merge" फिर से भाग गया और इस उत्पादन मिल गया:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved 
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon 

तो मैं भाग गया 'hg up --clean' और यह बताया:

6 files updated, 0 files merged, 1 files removed, 0 files unresolved 

अब जब मैं टाइप 'hg heads', यह कहता है:

changeset: 11 
tag:   tip 
parent:  9 
user:  eggdrop 
date:  Tue Oct 20 16:27:44 2009 -0400 
summary:  Machine A after merge 

changeset: 10 
parent:  7 
user:  chickensoup 
date:  Thu Oct 15 03:27:23 2009 -0400 
summary:  Machine B changes to be pulled onto Machine A 
+0

क्या आपने विलय किया था? – avakar

+0

हां, मैंने सभी मतभेदों को हल किया और विलय किया। इसलिए, जब मैं "एचजी स्थिति" टाइप करता हूं तो कोई आउटपुट नहीं होता है क्योंकि स्थानीय सब कुछ चेक किया गया है। – eggdrop

उत्तर

9

आप hg up --clean भाग गए। इसका मतलब है कि आप विलय को कम करते हैं, जिसका अर्थ है कि आपको अभी भी विलय करने की आवश्यकता है। जब आप विलय करते हैं तो आपके पास एक अनसुलझा फ़ाइल होती है। फिर से पढ़ने के अपने त्रुटि संदेश:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved 
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon 

आप मर्ज संघर्ष को हल करने के लिए और फिर hg resolve साथ मर्ज के जरूरत है। फिर आप अपने दो सिर सफलतापूर्वक विलय कर लेंगे।

और अपने प्रश्न का उत्तर देने के लिए: नहीं, यह खराब दो दूरस्थ सिर होने के लिए नहीं है। इसका मतलब यह है कि आप दूरस्थ सर्वर पर कुछ और धक्का देने से पहले उन्हें (अधिमानतः ASAP) मर्ज करने की आवश्यकता है।

तो ठीक करने के लिए, बस hg merge चलाएं, एक संघर्ष को हल करें, फिर hg resolve चलाएं।

2

पहला: hg log के साथ अपने परिवर्तन देखें। निम्नलिखित मेरे मामले में मदद नहीं था:

  • hg pull और hg merge (इससे पहले कि आप खींच एचजी भेजे खिलाफ जांच)
  • या: hg pull --rebase

लेकिन इस मदद की।

hg merge [revision] 

मुझे पता चला कि मुझे कुछ संशोधनों को स्पष्ट रूप से मर्ज करने की आवश्यकता है जो सिर की तरह दिखते हैं।

+0

+1 - इसे भी करना था –

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