Должен ли я объединить файлы.pbxproj с git, используя merge=union?
Мне интересно, имеет ли смысл опция merge = union в.gitattributes для файлов.pbxproj.
На странице man указывается эта опция:
Запустите трехстороннее объединение на уровне файлов для текстовых файлов, но вместо строк маркеров конфликта возьмите строки из обеих версий. Это приводит к тому, что добавленные строки в результирующем файле остаются в произвольном порядке, и пользователь должен проверить результат.
Обычно это подходит для 90% случаев добавления файлов в проект. У кого-нибудь есть опыт с этим?
2 ответа
Не прямой опыт, но:
- Этот ТАК вопрос действительно советов снова слияния
.pbxproj
файлы.
pbxproj
файл на самом деле не человеческое слияние.
Хотя это простой текст ASCII, этоформа JSON, По сути, вы хотите рассматривать его как двоичный файл.
(отсюда gitignore
решение)
На самом деле, Peter Hosey добавляет в комментарии:
Это список свойств, а не JSON. Те же идеи, другой синтаксис.
- Тем не менее, согласно этому вопросу:
Правда в том, что запретить слияние этого файла.pbxproj гораздо опаснее, чем полезно.
.pbxproj
файлпросто JSON(похоже на XML). Исходя из опыта, примерно ТОЛЬКО конфликт слияния, который вы когда-либо получали, - это если два человека добавили файлы одновременно. Решение в 99% случаев слияния заключается в сохранении обеих сторон слияния.
Так что объединение "союз" (с gitattributes
Директива merge) имеет смысл, но проведите некоторый тест, чтобы увидеть, выполняет ли она то же самое, что и скрипт, упомянутый в последнем вопросе.
- Смотрите также этот вопрос для потенциальных конфликтов.
- Смотрите статью в Википедии на Список недвижимости
Я работал с большой командой в последнее время и пытался *.pbxproj merge=union
, но в итоге пришлось его убрать.
Проблема заключалась в том, что скобки стали бы неуместными на регулярной основе, что делало файлы нечитаемыми. Это правда, что это работает большую часть времени - но может быть неудачно 1 из 4 раз.
Мы вернулись к использованию *.pbxproj -crlf -merge
теперь. Похоже, это лучшее решение, которое работает для нас.