Xcode изменяет неизмененную раскадровку и файлы XIB

Раскадровки - это скорее королевская боль с точки зрения рабочего процесса git, когда над ними сотрудничают несколько человек. Например, XML в файле .storyboard имеет начало<document> тегаtoolsVersion а такжеsystemVersion атрибуты, измененные в зависимости от конфигурации, в которой работает последний файловый манипулятор. Синхронизация всех версий XCode точно помогаетtoolsVersion, ноsystemVersion меняется независимо от того, что зависит от конкретной версии Mac и / или OS X, на которой работает разработчик.

Это идиотское, но в основном безобидное. Что нас беспокоит, так это то, что иногда другие изменения автоматически вносятся в раскадровку, просто открывая их послеgit pull, То есть Алиса вносит изменения в раскадровку, фиксирует их и помещает в репозиторий. Затем Боб извлекает изменения Алисы и открывает раскадровку, чтобы внести дальнейшие изменения. В тот момент, когда он открывает раскадровку, значок файла немедленно переходит в измененное, но несохраненное состояние, иgit status показывает, что любое количество странных изменений произошло. Все это без того, чтобы Боб ничего не изменил и не сохранил файл сам

Наиболее распространенное автоматическое изменение, которое мы наблюдаем, - это исчезновение или повторное появление всего<classes> отметьте иерархию в конце файла раскадровки. Мы не выяснили, что является причиной этого. У нас может быть несколько локализованных версий раскадровки в различных каталогах .lproj, и при их открытии в Интерфейсном Разработчике иерархия классов может самопроизвольно удаляться из одних и добавляться в другие или оставляться в одних только. Это вызывает много шума вgit diff, но это на самом деле не нарушает никакой функциональности. Мы часто выборочно добавляем фактические изменения, которые мы внесли в индекс git, фиксируем их, а затем просто отбрасываем спонтанные, бессмысленные<classes> изменения. Это делает коммиты маленькими и красивыми, какими они и должны быть. В конце концов, однако, это становится слишком много, чтобы беспокоиться, так как XCode продолжает пересматривать изменения, и кто-то просто гневает их и некоторые другие вещи ... что хорошо, пока XCode другого не решит хотеть изменить их обратно без всяких усилий. очевидная причина. (Наша история коммитов много ругается по этому поводу.)

Кто-нибудь еще видит это поведение? Это ошибка XCode или проблема конфигурации на одном или нескольких наших Mac для разработчиков? Мы наблюдали похожее поведение при работе с файлами XIB, но раскадровки кажутся более восприимчивыми к этому.

Ответы на вопрос(5)

Ваш ответ на вопрос