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