Я должен объединить .pbxproj файлы с мерзавцем, использующим merge=union?

Я задаюсь вопросом, имеет ли merge=union опция в .gitattributes смысл для .pbxproj файлов.

Страница справочника указывает для этой опции:

Выполните слияние уровня файла с 3 путями для текстовых файлов, но проводите строки от обеих версий, вместо того, чтобы оставить маркеры конфликта. Это имеет тенденцию оставлять добавленные строки в получающемся файле в произвольном порядке, и пользователь должен проверить результат.

Обычно, это должно быть хорошо для 90%-го случая добавляющих файлов к проекту. У кого-либо есть опыт с этим?

20
задан sehe 19 July 2013 в 14:07
поделиться

1 ответ

Не прямой опыт, но:

  • Этот ТАК вопрос действительно советует снова объединиться .pbxproj файлы.

Файл pbxproj на самом деле не может быть объединен людьми.
Хотя это простой текст ASCII, это форма JSON . По сути, вы хотите рассматривать его как двоичный файл.

(отсюда gitignore решение )

Собственно, Питер Хози добавляет в свой комментарий:

Это список свойств , не JSON. Те же идеи, другой синтаксис.

На самом деле запретить слияние этого файла .pbxproj гораздо вреднее, чем полезно.
Файл .pbxproj представляет собой просто JSON (аналогично XML). По опыту, вы можете столкнуться с ЕДИНСТВЕННЫМ конфликтом слияния, если два человека добавили файлы одновременно. Решение в 99% случаев конфликта слияния состоит в том, чтобы сохранить обе стороны слияния.

Итак, «объединение» слияния (с gitattributes директивой слияния ) имеет смысл, но сделайте несколько тестов, чтобы увидеть, делает ли он то же самое, что и сценарий, упомянутый в последнем вопросе.

18
ответ дан 30 November 2019 в 00:39
поделиться