Конфликт SVN файла проекта xcode при работе в команде
Я работаю в команде, которая разрабатывает приложение для iPhone (около 7 человек). Мы используем SVN для управления исходным кодом кода iPhone, мы продолжаем сталкиваться с проблемами конфликта с файлом проекта xcode и файлом nib iPhone. Я думаю, что был задан вопрос об этой проблеме: Как объединить конфликты (файл project.pbxproj) в Xcode использовать SVN?, Я хочу спросить, если кто-нибудь когда-нибудь придумал удовлетворительное решение этого. Поскольку наша команда довольно приличного размера (7 человек), ручное разрешение конфликтов в файле проекта xcode каждый раз, когда кто-то меняет код, или добавление нового объекта в файл nib - огромная потеря производительности. Задумывались ли инженеры Apple об этой проблеме, когда писали свои приложения для iPhone? Я искал удовлетворительное решение, используя Google и Bing, но пока не нашел.
Спасибо,
2 ответа
Это определенно ОГРОМНЫЙ недостаток с xcode. Я в команде такого же размера, и вот что я делаю, чтобы сделать процесс максимально безболезненным:
Обновление SVN (ВСЕГДА делайте это и до регистрации):
- выйти из Xcode. Самый быстрый способ сделать это - использовать Alfred и набрать "forcequit xcode"
- "svn up" в папке проекта из командной строки
- Если у вас есть какие-либо конфликты слияния с файлом проекта, нажмите "редактировать", чтобы открыть в Emacs или что-то еще
- поиск "======", чтобы найти конфликты слияния; удалите эту строку, а также строки "<<<< шахта" и ">>>>"
- сохранить и выйти. нажмите "r", чтобы пометить проект как решенный.
- заново открыть проект - "открыть MyProject.xcodeproj/"
Приложив немного практики, вы можете сократить этот процесс до минуты (я делаю это несколько раз в день).
для файлов NIB НЕ работайте, пока над ним работает кто-то другой. Там нет реального способа объединить их. Внесите изменения быстро и зарегистрируйтесь сразу (не так много случаев, когда 2 человека должны работать над файлом NIB одновременно). Для менее сложных представлений просто выложите их программно.
Попробуйте установить SourceGear DiffMerge. Это инструмент слияния, который должен облегчить слияние изменений. Также смотрите этот пост в блоге о настройке XCode для использования DiffMerge