Значение фрейма раскадровки Xcode автоматически все время вызывает конфликт слияния. Как это решить?
Каждый раз, когда я объединяю проект objc iOS другого члена команды, у меня возникал какой-то странный конфликт, подобный этому:
<<<<<<< HEAD
<rect key="frame" x="254.00000003476939" y="0.0" width="63" height="21"/>
=======
<rect key="frame" x="254.00000010362709" y="0.0" width="63" height="21"/>
>>>>>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Мы никогда не меняем значение x и всегда даем целочисленное значение. Очевидно, Xcode автоматически изменил значение. Как предотвратить такие добрые вещи?
1 ответ
Вы можете избежать проверки в таком измененном значении, убедив Git, что содержимое файла не изменилось.
Это возможно с clean
скрипт, который будет отвечать за сохранение только целочисленного значения для х.
Этот скрипт будет применяться только к .storyboard
файлы (как описано здесь), и должны будут заменить "254.xxx" на "254".
sed -i 's/x=\"([^0-9]+).*\"/x=\"\1\"/g'
Восстановление файла с помощью этого сценария автоматизировано с помощью драйвера фильтра содержимого, используя .gitattributes
декларация
(изображение из "Настройка Git - атрибутов Git" из " Книги Pro Git "))
Как только вы объявите драйвер файла контент-файла в вашей локальной конфигурации git, он автоматически включит git commit
, восстановить файл.
Или он будет считать файл без изменений на git diff
/ git status
даже когда XCode изменил это значение.
Полный пример приведен в разделе " Лучшая практика - автоматизация Git + Build - разделение конфигов ".