Являются ли конфликты subversion в project.pbxproj нормальными? - PullRequest
2 голосов
/ 21 марта 2010

Если я добавлю файлы в свой проект, и мой коллега добавит файлы в его проект, и мы оба проверим наши файлы, следует ли ожидать конфликтов?Какой лучший способ справиться с этим?

Ответы [ 4 ]

5 голосов
/ 21 марта 2010

Это случается достаточно часто со мной, что у меня есть сценарий оболочки для исправления этих проблем - почти все время конфликтов слияния происходят просто потому, что вы и другой человек добавили новые файлы в проект, и поэтому вы просто хотите сохранить оба стороны слияния. Запускайте этот сценарий в главном каталоге проекта (где находятся каталог сборки и классы) каждый раз, когда возникает конфликт слияния, перейдите в XCode, чтобы убедиться, что он может загрузить объединенный проект, прежде чем зафиксировать фиксированное слияние!

Обратите внимание, что я использую это с git, вы можете проверить, какие маркеры конфликта слияния есть в вашем коде, используйте символы ниже, чтобы показать конфликтующие участки (==== - средний делитель).

mergeproj.sh

#!/bin/sh

projectfile=`find -d . -name 'project.pbxproj'`
projectdir=`echo *.xcodeproj`
projectfile="${projectdir}/project.pbxproj"
tempfile="${projectdir}/project.pbxproj.out"
savefile="${projectdir}/project.pbxproj.mergesave"

cat $projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^>>>>>>> " > $tempfile
cp $projectfile $savefile
mv $tempfile $projectfile

3 голосов
/ 21 марта 2010

Да, это распространено.

Я обычно просто разрешаю конфликты вручную в текстовом редакторе; формат проекта на самом деле не так сложен для чтения. Если изменения невелики (просто добавление или удаление нескольких файлов), вы можете просто повторить изменение через интерфейс Xcode, если хотите.

0 голосов
/ 21 июля 2011

Вы можете использовать FileMerge, который поставляется с XCode.Вы можете найти его в папке разработчика в разделе «Приложения», а затем «Утилиты».

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

После того, как вы закончите, сохраните как и сохраните файл с изменениями к исходному имени файла.

0 голосов
/ 21 марта 2010

Да, будут конфликты.Лучший способ исправить это - открыть .prxproj в текстовом редакторе, таком как TextMate, и искать строки с >>>.Просто удалите svn merge (строки со стрелками и строки, указывающие, из какой ветки это произошло).Затем сохраните файл и отметьте его как разрешенный.Вы сделали!

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