2011-12-13 10 views
18

मैं BC3, SourceGear, या पी 4 जैसे उपकरणों जो आम तौर पर 4 घटकों दिखाने के विलय 3-जिस तरह से साथ काम करने के लिए प्रयोग किया जाता विलय: आधार, छोड़ दिया, सही, और परिणाम विलय कर दिया। , बाएं आधार, छोड़ दिया, सही आधारसही,:Git 4-मार्गी

क्या Git कर रहा है, और सही भी विशेष रूप से एक git rebase --onto के मामलों में एक 4-रास्ता मर्ज होने लगते हैं विलय परिणाम। या दूसरे शब्दों में, बाएं (स्थानीय) पक्ष पर किए गए डिफ पैच को लेना, और दाएं (रिमोट) पक्ष पर किए गए डिफ पैच के साथ इसे मर्ज करने का प्रयास करना।

मर्ज किए गए = वाम Diff-पथ + राइट-Diff-पथ

आप अगर कोई इस तरह के समर्थन आजकल है कि उन 4 घटकों से पता चलता किसी भी अच्छे उपकरण जानते हैं?

उत्तर

2

मुझे नहीं लगता कि कोई मौजूद है। मैंने हमेशा सुना है कि बीसी 3 और पी 4 मेर्ज सबसे अच्छे थे।

+0

क्या आप किसी भी स्पष्टीकरण की पेशकश कर सकते हैं कि उदाहरण के लिए पी 4 मेर्ज का उपयोग 4 फ़ाइल संस्करणों को मर्ज करने के लिए किया जा सकता है, यदि यह संभव है? मैं खुद को एक शाखा में किसी अन्य शाखा में परिवर्तनों को मर्ज करना चाहता हूं, जो पहले से ब्रांच किए जाने के बाद से अपने स्वयं के परिवर्तनों से गुजर चुका है। मुझे पता है कि टीम फाउंडेशन सर्वर स्वचालित रूप से (अधिकांश पार्टी के लिए) कर सकता है यदि आप कोड में चेक करते हैं, लेकिन मैं कभी-कभी कुछ भी जांचने से पहले ऐसा करना चाहता हूं। – BlueMonkMN

+0

यह नहीं पूछा गया था। यदि आप 4 भिन्नताओं को विलय करना चाहते हैं, तो आप ऑक्टोपस विलय 'गिट मर्ज शाखा 1 शाखा 2 शाखा 3 शाखा 4' के साथ कर सकते हैं। यदि आपको संघर्ष मिलते हैं, तो ऑक्टोपस विलय निरस्त हो जाएगा, आप 2 से अधिक संस्करणों को विवादित नहीं कर सकते हैं। उस ने कहा, आप एक समय में उनमें से प्रत्येक को विलय कर सकते हैं। फिर पहले विलय सभी विलय करें। आप संरक्षित करते हैं कि माता-पिता के पास ऑक्टोपस विलय की शाखाओं की युक्तियों के सभी SHA1 लिखकर काम किया जाएगा जो आप अलग-अलग लाइनों पर '.git/MERGE_HEAD' में विलय कर रहे हैं। अब जब आप प्रतिबद्ध होते हैं, तो आपके द्वारा उत्पन्न प्रतिबद्धता में आपके 4 माता-पिता होंगे। –

+0

आगे के शोध के बाद मैंने सीखा कि 3-तरफा विलय की मेरी समझ को भ्रमित कर दिया जाना चाहिए, और मुझे बस इतना ही चाहिए कि मेरे मामले में एक साधारण 3-तरफा विलय हो। गलतफहमी के लिए खेद है। मैंने सोचा था कि जब मेरी दो शाखाएं थीं, एक आम रूट संस्करण था, और एक शाखा का एक संशोधित संस्करण जिसे मैं दूसरे में विलय करना चाहता था, मुझे 3-तरफा विलय से अधिक की आवश्यकता थी, लेकिन मैंने नहीं किया। मैं आम तौर पर आम रूट संस्करण को अनदेखा कर सकता हूं और चीजें मेरे मामले में बहुत अच्छी तरह से काम करती हैं। – BlueMonkMN

2

diffuse डिफ़ॉल्ट रूप से मेरे Fedora17 वर्कस्टेशन पर स्थापित किया गया प्रतीत होता है;

git mergetool 

बस इसे खोलता है, तुरंत संपादन के लिए सही फ़ाइलें दिखा: यह भी मैं अपने .gitconfig पर कुछ भी निर्दिष्ट के रूप में नहीं किया, अभी भी किसी तरह से डिफ़ॉल्ट होता है।

मेल्ड इसके साथ सौदा करने में सक्षम लगता है, मुझे इसे स्थापित करना था और बेहतर दिख रहा था।

+1

यकीन नहीं है कि मेरा जवाब क्यों वोट दिया जाता है। डिफ्यूज ठीक से 4 तरीके विलय दिखाता है। साथ ही मिलाकर जोड़ना। – Sanne

+2

एक स्क्रीनशॉट का कोई मौका 4-तरफा diff/विलय दिखा रहा है? मैंने केवल दो-तरफा फैला हुआ/मिश्रित देखा है। –

+1

ठीक है, ऐसा लगता है कि 'diffuse' * होगा * एक मनमाने ढंग से भिन्न होगा, लेकिन केवल एक ही फाइल पर। –