Дошка розказок - це скоріше королівський біль з точки зору робочого процесу, коли на них співпрацюють кілька людей. Наприклад, XML у файлі .storyboard має свій початковий <document>
тег toolsVersion
та systemVersion
атрибути, змінені залежно від конфігурації, що працює останній файловий маніпулятор. Синхронізувати всі версії Xcode точно, здається, допомагає toolsVersion
, але systemVersion
не змінюється, незалежно від конкретних версій Mac та / або OS X, якими працює розробник.
Це ідіотично, але в основному нешкідливо. Тим не менш, нас хвилює те, що в інший час деякі інші зміни автоматично вносяться на дошку розгортання, просто відкриваючи їх після git pull
. Тобто, Аліса вносить зміни в дошку розкадрувань, здійснює зйомки та переміщує їх у сховище. Потім Боб витягує зміни Аліси і відкриває дошку розкадрів, щоб зробити подальші зміни. Щойно він відкриває дошку розкадрування, піктограма файлу негайно переходить у модифікований, але не збережений стан, і git status
показує, що будь-яка кількість дивних змін відбулася. Все це без того, щоб Боб нічого змінив або сам зберег файл.
Найпоширеніша автоматизована зміна, яку ми спостерігаємо, - це зникнення або повторне поява всієї <classes>
ієрахії тегів біля кінця файлу розкадровки. Ми не з'ясували, що це викликає. У нас може бути кілька локалізованих версій розкадровки в різних каталогах .lproj, і при відкритті їх всередині Interface Builder ієрархія класів може мимовільно видалятися з одних і додаватися до інших, або залишатись одна в одній. Це викликає багато шуму git diff
, але насправді це не порушує жодної функціональності. Ми часто вибірково додаватимемо фактичні зміни, які ми внесли до індексу git, зробимо ці, а потім просто відкинемо спонтанне, безглузде<classes>
зміни. Це потрібно, щоб доручення було малим і приємним, як вони повинні бути. Зрештою, однак, це стає занадто багато для того, щоб турбуватися, оскільки Xcode продовжує повторно робити зміни, а хтось просто демонструє їх разом із деякими іншими речами ... що добре, поки чужий Xcode не вирішить захотіти змінити їх назад ні очевидна причина. (Наша історія вчинення багато присягається на це.)
Хтось ще бачить таку поведінку? Це помилка Xcode або проблема конфігурації для одного або декількох наших Macs для розробників? Ми бачили деяку подібну поведінку під час співпраці з файлами XIB, але дошки розповідей здаються більш сприйнятливими до цього.