स्टोरीबोर्ड एक git वर्कफ़्लो परिप्रेक्ष्य से एक शाही दर्द है जब कई लोग उन पर सहयोग कर रहे हैं। उदाहरण के लिए, .storyboard फ़ाइल में एक्सएमएल का अपना शुरुआती <document>
टैग होता है toolsVersion
और systemVersion
सबसे हाल की फ़ाइल मैनिपुलेटर जो भी कॉन्फ़िगरेशन होता है उसके द्वारा विशेषताएँ बदल जाती हैं। हर किसी के Xcode वर्जन को सिंक्रोनाइज़ करना ठीक-ठीक मदद करने लगता है toolsVersion
, लेकिन systemVersion
कोई फर्क नहीं पड़ता कि क्या मैक और / या OS X वर्जन के आधार पर डेवलपर चल रहा है।
यह मुहावरेदार है, लेकिन ज्यादातर हानिरहित है। हालाँकि, हमें इस बात की चिंता है कि अन्य समय में स्टोरीबोर्ड में कुछ अन्य बदलाव स्वतः ही हो जाते हैं, उन्हें खोलने के बाद git pull
। यह कहना है, ऐलिस एक स्टोरीबोर्ड में परिवर्तन करता है, उन्हें रिपॉजिटरी में भेजता है और उन्हें धक्का देता है। बॉब फिर ऐलिस के बदलावों को खींचता है और आगे के बदलाव करने के लिए स्टोरीबोर्ड खोलता है। जिस क्षण वह स्टोरीबोर्ड खोलता है, फ़ाइल आइकन तुरंत संशोधित-लेकिन-बिना सहेजे गए स्थिति में बदल जाता है, और git status
दिखाता है कि किसी भी संख्या में अजीब परिवर्तन हुए हैं। बॉब के बिना यह सब कुछ बदल गया है या फ़ाइल को स्वयं सहेज लिया है।
सबसे आम स्वचालित परिवर्तन जो हम देख रहे हैं, वह <classes>
स्टोरीबोर्ड फ़ाइल के अंत के पास पूरे टैग हिराची का गायब होना या पुन: प्रकट होना है । हमें यह पता नहीं चला है कि यह क्या कारण है। हमारे पास विभिन्न .lproj निर्देशिकाओं में एक स्टोरीबोर्ड के कई स्थानीयकृत संस्करण हो सकते हैं, और उन्हें इंटरफ़ेस बिल्डर के अंदर खोलने पर, वर्ग पदानुक्रम को कुछ से अनायास हटा दिया जा सकता है और दूसरों में जोड़ा जा सकता है, या कुछ में अकेला छोड़ दिया जा सकता है। यह बहुत शोर का कारण बनता है git diff
, लेकिन यह वास्तव में किसी भी कार्यक्षमता को नहीं तोड़ता है। हम अक्सर उन चुनिंदा परिवर्तनों को जोड़ेंगे जो हमने git के इंडेक्स में किए हैं, उन लोगों को कमिट करते हैं, और फिर सहज, निरर्थक को छोड़ देते हैं<classes>
परिवर्तन। यह छोटे और अच्छे को बनाए रखने के लिए है, जैसा कि उन्हें होना चाहिए। आखिरकार, हालाँकि, यह बहुत ज्यादा परेशान करता है क्योंकि Xcode बदलावों को फिर से करता रहता है, और कोई व्यक्ति उन्हें किसी अन्य सामान के साथ ही ragecommits करता है ... जो तब तक ठीक है जब तक कि किसी और का Xcode उन्हें वापस नहीं बदलना चाहता। स्पष्ट कारण। (हमारे प्रतिबद्ध इतिहास में इस पर बहुत अधिक शपथ है।)
क्या कोई और इस व्यवहार को देख रहा है? क्या यह एक Xcode बग या हमारे डेवलपर Mac में से एक या अधिक पर कॉन्फ़िगरेशन समस्या है? हमने XIB फ़ाइलों के साथ सहयोग करते समय कुछ इसी तरह का व्यवहार देखा है, लेकिन स्टोरीबोर्ड इसके लिए अतिसंवेदनशील लगते हैं।