मैं अपने साथी एकता दृश्य को मर्ज करने की कोशिश कर रहा हूं और मैं स्मार्ट मर्ज का उपयोग करके काम कर रहा हूं। मेरी अन्य संपत्तियों और प्रीफ़ैब्स ने स्मार्ट मर्ज के साथ संघर्षों को ठीक किया; हालांकि, एक दृश्य बिल्कुल विलय नहीं कर रहा है।

मेरी .git/config फाइल में मैंने जोड़ा

[merge]
tool = unityyamlmerge
[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = 'C:\\Program Files\\Unity\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"

मैंने एक .gitattributes फ़ाइल भी शामिल की है जिसमें . है

*.unity binary
*.prefab binary
*.asset binary

मैंने अपनी संपत्ति के क्रमांकन को 'बलपूर्वक पाठ' और संस्करण नियंत्रण को 'दृश्यमान मेटा फ़ाइलें' पर सेट कर दिया है।

हमारे प्रीफ़ैब और अन्य संपत्तियां ठीक से विलीन हो गई हैं, लेकिन हमारा एक दृश्य बिल्कुल भी विलीन नहीं होता है।

टर्मिनल में git mergetool कमांड चलाते समय, यह इस निर्दिष्ट दृश्य के लिए विरोध प्रदर्शित करता है, लेकिन फिर इसे अंत में लौटाता है:

Left  563852304.Light.m_Color.r add as 0.8962264
Right 563852304.Light.m_Color.r add as 0.9433962
Left  610301896.GameObject.m_IsActive add as 0
Right 610301896.GameObject.m_IsActive add as 1
Left  610301898.Transform.m_LocalPosition.x add as -13.07
Right 610301898.Transform.m_LocalPosition.x add as -14.31
Left  610301898.Transform.m_LocalPosition.y add as 2.6
Right 610301898.Transform.m_LocalPosition.y add as 2.14
Left  610301898.Transform.m_RootOrder add as 8
Right 610301898.Transform.m_RootOrder add as 7
Left  869912137.Transform.m_LocalPosition.x add as -7.36
Right 869912137.Transform.m_LocalPosition.x add as -7.333
Left  869912137.Transform.m_LocalScale.x add as 4
Right 869912137.Transform.m_LocalScale.x add as 4.0070143
Conflict handling:
Xmas-Prototype-01/Assets/_Scenes/InitScene.unity seems unchanged.
Was the merge successful [y/n]?

संघर्ष अधिक है, लेकिन सूचीबद्ध करने के लिए बहुत कुछ है।

यह एकमात्र फ़ाइल है जिसका मेरी स्थानीय शाखा में विलय नहीं हुआ है। क्या इस एक दृश्य को मर्ज करने का कोई तरीका है?

शुक्रिया!

4
SoiL 19 सितंबर 2018, 06:24

2 जवाब

सबसे बढ़िया उत्तर

मुझे पता है कि यह ज्यादा जवाब नहीं है। दृश्यों और गिट के साथ काम करते समय सामान्य सर्वोत्तम अभ्यास यह है कि एक समय में केवल एक व्यक्ति एक दृश्य पर काम कर रहा हो। हम एक "दृश्य टोपी" का उपयोग कर रहे हैं।

हम (इंडी स्टूडियो) जो कर रहे हैं वह है एकाधिक दृश्यों को जोड़ना ए>, इसलिए स्तर डिजाइनर के पास काम करने के लिए कार्यक्षमता के बिना एक दृश्य होता है, और प्रोग्रामर (जिन्हें एक दृश्य के साथ बहुत अधिक समय की आवश्यकता नहीं होती है) के पास "बूटस्ट्रैप" दृश्य होता है, जिसमें गेम कार्यक्षमता होती है।

3
thefragen 19 सितंबर 2018, 10:55

मेरा मानना ​​है कि आपको अपने .gitattributes

*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf

वाईएएमएल के बारे में मुझे परेशान करने वाली चीजों में से एक यह है कि ऐसा लगता है कि दृश्य में संपादन के माध्यम से टेक्स्ट कहां जोड़ा जाता है इसका कोई मतलब नहीं है। यदि आप गेमऑब्जेक्ट को दृश्य सूची के बहुत नीचे जोड़ते हैं तो यह YAML के स्रोत में एक यादृच्छिक स्थान पर दिखाई देता है। यदि आप स्रोत कोड को स्थानांतरित करने के बजाय इसे स्थानांतरित करते हैं, तो यह रूट के शून्य अनुक्रमणिका क्रम को प्रतिबिंबित करने के लिए m_RootOrder नामक संपत्ति को बदल देता है। जब yamlmergetool शुरू होता है तो यह जल्दी से भ्रमित हो जाता है क्योंकि स्रोत कोड संपादक लाइन नंबर + कोड के ब्लॉक के साथ काम कर रहे हैं जो समान दिखते हैं। जैसा कि @thefragen ने बताया है, इससे निपटने का एक अच्छा तरीका यह है कि आपके सहयोगी संभावित मर्ज मुद्दों से बचने के लिए अलग-अलग दृश्यों में काम करें।

0
ow3n 21 अक्टूबर 2020, 15:50