Должен ли я объединить файлы .pbxproj с git, используя merge = union? - PullRequest
19 голосов
/ 28 апреля 2010

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

На странице man указывается эта опция:

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

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

Ответы [ 2 ]

17 голосов
/ 28 апреля 2010

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

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

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

(следовательно, gitignore решение )

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

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

Правда в том, что запретить слияние этого файла .pbxproj гораздо опаснее, чем полезного.
Файл .pbxproj - это , просто JSON (аналог XML). Исходя из опыта, примерно ТОЛЬКО конфликт слияния, который вы когда-либо получали, это если два человека добавили файлы одновременно. Решение в 99% случаев конфликта слияния состоит в том, чтобы сохранить обе стороны слияния.

Так что объединение 'union' (с gitattributes директивой merge ) имеет смысл, но проведите некоторый тест, чтобы убедиться, что он выполняет те же действия, что и скрипт, упомянутый в предыдущем вопросе.

10 голосов
/ 16 августа 2013

В последнее время я работал с большой командой и пытался *.pbxproj merge=union, но в конечном итоге пришлось ее удалить.

Проблема заключалась в том, что брекеты стали бы неуместными на регулярной основе, что делало файлынечитаемым.Это правда, что это работает большую часть времени - но может провалиться 1 из 4 раз.

Мы вернулись к использованию *.pbxproj -crlf -merge на данный момент.Похоже, это лучшее решение, которое работает для нас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...