Как работать над проектом iOS с SVN? - PullRequest
3 голосов
/ 18 января 2011

При добавлении / удалении файлов / изменении настроек .xcodeproj будет изменен. И если несколько человек попытаются сделать это в одном и том же проекте, потому что SVN не такой умный, как git, это будет вызывать проблемы каждый раз, есть ли способ обойти эту проблему, кроме разговоров со всеми каждый раз?

Ответы [ 2 ]

3 голосов
/ 07 марта 2011

Я не разработчик XCode, но занимаюсь администрированием Subversion. Я считаю, что .xcodeproj file на самом деле не файл, а каталог, который содержит как информацию о проекте, так и информацию о пользователе. Subversion сохраняет этот каталог в хранилище как каталог. Это хорошо.

Файл project.pbxproj внутри этого каталога содержит информацию о проекте, и это тоже должно быть сохранено в Subversion. Так настроен проект.

Отдельные файлы * .pbxuser предназначены для конкретного пользователя и не должны находиться в репозитории SVN. Вот где ваша проблема.

На самом деле, это связано с тем, что Mac OS X делает вид, что некоторые каталоги являются просто папками, которые содержат информацию о ресурсах . Обычно это приводит к путанице разработчика, поскольку их браузер отображает один файл, а не каталог.

XCode, вероятно, поступает правильно, если пользователь выполняет свои операции Subversion внутри XCode. (Я знаю, что Затмение делает). И если бы пользователь использовал командную строку Subversion, он бы сразу увидел, что определенные файлы являются каталогами, и что Subversion работает так, как должен. Командная строка Subversion не будет иметь проблем с этими файлами .pbxuser.

Проблема обычно заключается в том, что пользователи используют графический интерфейс Subversion, который использует Finder в качестве браузера - подобно тому, как TortoiseSVN в Windows использует проводник. В сочетании с XCode это может вызвать проблемы.

Лучший способ справиться с этим - создать ловушку перед фиксацией, которая не выполнит фиксацию, если пользователь попытается добавить пользовательский файл * .pbxuser. (И удалить все файлы * .pbxuser из репозитория). Эти пользователи быстро научатся помещать эти файлы * .pbxuser в настройки игнорирования Subversion.

В Perl и Python достаточно хуков для предварительной фиксации файла, которые могут справиться с этим.

0 голосов
/ 18 января 2011

Я думаю, что Xcode 4 имеет встроенную поддержку SVN, которая немного помогает в решении этих проблем.

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