Я задаюсь вопросом, имеет ли merge=union опция в .gitattributes смысл для .pbxproj файлов.
Страница справочника указывает для этой опции:
Выполните слияние уровня файла с 3 путями для текстовых файлов, но проводите строки от обеих версий, вместо того, чтобы оставить маркеры конфликта. Это имеет тенденцию оставлять добавленные строки в получающемся файле в произвольном порядке, и пользователь должен проверить результат.
Обычно, это должно быть хорошо для 90%-го случая добавляющих файлов к проекту. У кого-либо есть опыт с этим?
Не прямой опыт, но:
.pbxproj
файлы. Файл
pbxproj
на самом деле не может быть объединен людьми.
Хотя это простой текст ASCII, этоформа JSON. По сути, вы хотите рассматривать его как двоичный файл.
(отсюда gitignore
решение )
Собственно, Питер Хози добавляет в свой комментарий:
Это список свойств , не JSON. Те же идеи, другой синтаксис.
На самом деле запретить слияние этого файла .pbxproj гораздо вреднее, чем полезно.
Файл.pbxproj
представляет собойпросто JSON(аналогично XML). По опыту, вы можете столкнуться с ЕДИНСТВЕННЫМ конфликтом слияния, если два человека добавили файлы одновременно. Решение в 99% случаев конфликта слияния состоит в том, чтобы сохранить обе стороны слияния.
Итак, «объединение» слияния (с gitattributes
директивой слияния ) имеет смысл, но сделайте несколько тестов, чтобы увидеть, делает ли он то же самое, что и сценарий, упомянутый в последнем вопросе.