สตอรีบอร์ดเป็นความเจ็บปวดจากมุมมองของกระบวนการทำงานแบบคอมไพล์เมื่อมีคนหลายคนทำงานร่วมกัน ตัวอย่างเช่น XML ในไฟล์. สตอรี่บอร์ดมี<document>
แท็กเริ่มต้นtoolsVersion
และsystemVersion
แอตทริบิวต์ที่เปลี่ยนแปลงโดยการกำหนดค่าใด ๆ ก็ตามที่เครื่องมือจัดการไฟล์ล่าสุดกำลังทำงานอยู่ การซิงโครไนซ์เวอร์ชัน Xcode ของทุกคนดูเหมือนจะช่วยได้อย่างแม่นยำtoolsVersion
แต่systemVersion
จะมีการเปลี่ยนแปลงไม่ว่าจะเป็นอย่างไรทั้งนี้ขึ้นอยู่กับเวอร์ชัน Mac และ / หรือ OS X ที่นักพัฒนาใช้งานอยู่
นี่เป็นเรื่องงี่เง่า แต่ส่วนใหญ่ไม่เป็นอันตราย สิ่งที่ทำให้เรากังวลคือในบางครั้งการเปลี่ยนแปลงอื่น ๆ จะเกิดขึ้นโดยอัตโนมัติกับสตอรีบอร์ดเพียงแค่เปิดหลังจากไฟล์git pull
. กล่าวคืออลิซทำการเปลี่ยนแปลงกับสตอรีบอร์ดยอมรับและผลักดันไปยังที่เก็บ จากนั้นบ็อบดึงการเปลี่ยนแปลงของอลิซและเปิดกระดานเรื่องราวเพื่อทำการเปลี่ยนแปลงเพิ่มเติม ทันทีที่เขาเปิดกระดานเรื่องราวไอคอนไฟล์จะเปลี่ยนเป็นสถานะที่แก้ไข แต่ไม่ได้บันทึกทันทีและgit status
แสดงให้เห็นว่ามีการเปลี่ยนแปลงแปลก ๆ เกิดขึ้นจำนวนมาก ทั้งหมดนี้โดยที่ Bob ไม่ได้เปลี่ยนแปลงอะไรหรือบันทึกไฟล์ด้วยตัวเอง
การเปลี่ยนแปลงอัตโนมัติที่พบบ่อยที่สุดที่เราเห็นคือการหายไปหรือการปรากฏขึ้นอีกครั้งของ<classes>
แท็กทั้งหมดที่อยู่ใกล้กับส่วนท้ายของไฟล์สตอรีบอร์ด เรายังไม่ทราบว่าอะไรเป็นสาเหตุของสิ่งนี้ เราอาจมีสตอรี่บอร์ดเวอร์ชันแปลหลายเวอร์ชันในไดเร็กทอรี. lproj ต่างๆและเมื่อเปิดภายในอินเทอร์เฟซ Builder ลำดับชั้นของคลาสอาจถูกลบออกจากบางเวอร์ชันและเพิ่มลงในเวอร์ชันอื่น ๆ หรือปล่อยให้อยู่คนเดียวในบางไดเร็กทอรี สิ่งนี้ทำให้เกิดเสียงดังgit diff
มาก แต่ก็ไม่ได้ทำลายฟังก์ชันการทำงานใด ๆ เรามักจะเลือกเพิ่มการเปลี่ยนแปลงจริงที่เราทำลงในดัชนีของ git กระทำสิ่งเหล่านั้นจากนั้นก็ทิ้งสิ่งที่เกิดขึ้นเองและไร้สาระ<classes>
ซ้ำของการเปลี่ยนแปลงนี่คือการกระทำเล็ก ๆ น้อย ๆ และดีอย่างที่ควรจะเป็น ในที่สุดแม้ว่าจะกลายเป็นเรื่องที่น่ารำคาญมากเกินไปเนื่องจาก Xcode ยังคงทำการเปลี่ยนแปลงซ้ำและมีคนเพียงแค่สั่งให้พวกเขาร่วมกับสิ่งอื่น ๆ ... ซึ่งก็ใช้ได้จนกว่า Xcode ของคนอื่นจะตัดสินใจว่าต้องการเปลี่ยนกลับโดยไม่ เหตุผลที่ชัดเจน (ประวัติการกระทำของเรามีคำสบถมากมายเกี่ยวกับเรื่องนี้)
มีใครอีกบ้างที่เห็นพฤติกรรมนี้ นี่เป็นข้อบกพร่องของ Xcode หรือปัญหาการกำหนดค่าใน Mac ของนักพัฒนาซอฟต์แวร์ของเราอย่างน้อยหนึ่งเครื่อง? เราเคยเห็นพฤติกรรมบางอย่างที่คล้ายกันเมื่อทำงานร่วมกับไฟล์ XIB แต่สตอรีบอร์ดดูเหมือนจะอ่อนไหวต่อสิ่งนี้มากกว่า