Öykü tahtaları, birden fazla kişi üzerinde işbirliği yaptığında, git iş akışı perspektifinden oldukça büyük bir acıdır. Örneğin, .storyboard dosyasındaki XML'nin başlangıç <document>
etiketi toolsVersion
ve systemVersion
öznitelikleri, en son dosya manipülatörünün çalıştırdığı yapılandırma ne olursa olsun değiştirilir. Herkesin Xcode sürümlerini tam olarak senkronize etmek yardımcı oluyor gibi görünüyor toolsVersion
, ancak systemVersion
geliştiricinin çalıştırdığı belirli Mac ve / veya OS X sürümüne bağlı olarak ne olursa olsun değişir.
Bu aptalca ama çoğunlukla zararsız. Yine de bizi endişelendiren şey, diğer bazı değişikliklerin film şeridinde otomatik olarak bir git pull
. Yani Alice bir storyboard'da değişiklikler yapar, bunları işleme koyar ve depoya iter. Bob daha sonra Alice'in değişikliklerini çeker ve daha fazla değişiklik yapmak için film şeridini açar. Film şeridini açtığı anda, dosya simgesi hemen değiştirilmiş ancak kaydedilmemiş bir duruma geçer vegit status
herhangi bir sayıda tuhaf değişikliğin meydana geldiğini gösterir. Tüm bunlar, Bob hiçbir şeyi değiştirmeden veya dosyayı kendisi kaydetmeden.
Gördüğümüz en yaygın otomatik değişiklik <classes>
, bir film şeridi dosyasının sonuna yakın tüm etiket hiyerarşisinin kaybolması veya yeniden ortaya çıkmasıdır. Buna neyin sebep olduğunu bulamadık. Çeşitli .lproj dizinlerinde bir film şeridinin birkaç yerelleştirilmiş sürümüne sahip olabiliriz ve bunları Interface Builder içinde açarken, sınıf hiyerarşisi bazılarından kendiliğinden kaldırılıp diğerlerine eklenebilir veya bazılarında yalnız bırakılabilir. Bu, çok fazla gürültüye neden olur git diff
, ancak aslında herhangi bir işlevi bozmaz. Yaptığımız gerçek değişiklikleri sıklıkla seçmeli olarak git'in indeksine ekleyeceğiz, bunları uygulayacağız ve sonra sadece spontane, saçma sapan şeyleri atacağız.<classes>
değişikliklerin . Bu, taahhütleri olması gerektiği gibi küçük ve güzel tutmaktır. Sonunda, yine de, Xcode değişiklikleri tekrar yapmaya devam ettiğinden ve birileri onları diğer bazı şeylerle birlikte öfkelendirdiği için uğraşmak çok fazla olur ... bu, bir başkasının Xcode'u onları hayır için değiştirmeye karar verene kadar iyidir. belirgin sebep. (Taahhüt tarihimizde bunun üzerine çok fazla küfür var.)
Bu davranışı gören başka biri var mı? Bu bir veya daha fazla geliştirici Mac'imizde bir Xcode hatası mı yoksa bir yapılandırma sorunu mu? XIB dosyalarıyla işbirliği yaparken benzer davranışlar gördük, ancak hikaye tahtaları buna daha duyarlı görünüyor.