Как вы синхронизируете исходные файлы проекта Xcode с каталогами файловой системы? - PullRequest
16 голосов
/ 21 февраля 2010

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

В XCode, похоже, мне нужно как создать файл, так и отдельно добавить его в проект (или заставить работать с файловой системой через пользовательский интерфейс). Но это означает, что совместное использование .xcodeproj через систему контроля версий чревато проблемами - часто мы получим конфликты слияния в файле xcodeproj - а когда мы этого не сделаем, мы часто получим ошибки компоновщика, потому что во время слияния некоторые файлы которые были перечислены в проекте, иссекают. Поэтому мне нужно пойти и повторно добавить их в файл проекта, пока я не смогу его скомпилировать, а затем повторно проверить файл проекта.

Я уверен, что мне здесь чего-то не хватает. Я пытался использовать «справочные папки», но код в них, похоже, не скомпилирован. Кажется безумным строить IDE, которая заставляет всех изменять один общий файл при добавлении или удалении файлов в проект.

Ответы [ 2 ]

5 голосов
/ 16 июля 2011

Другие ответы, несмотря на то, что это абсолютно отклонение от других IDE и серьезная неприятность. Я не знаю хорошего решения.

Один трюк, который я часто использую, чтобы сделать его немного более терпимым - особенно с каталогами ресурсов с большим количеством файлов в них - это:

  • выберите каталог в дереве проекта,
  • нажмите клавишу удаления,
  • выберите «Удалить только ссылки», затем
  • перетащите каталог в проект, чтобы повторно добавить его.

Это перекрывает любое ручное переупорядочение файлов, но, по крайней мере, выполняет синхронизацию операции O (1), а не O (n) в количестве измененных файлов.

2 голосов
/ 24 февраля 2010

Я заинтригован тем, какие IDE, которые вы используете, автоматически компилируют все в каталоге, поскольку ни одна IDE, которую я когда-либо использовал, не делает этого (по крайней мере, для C ++). Я думаю, что довольно стандартно иметь файл проекта, содержащий список всех файлов. Часто вы можете захотеть включать только определенные файлы для разных целей, иметь настройки компилятора для каждого файла и т. Д.

В любом случае, учитывая то, как это работает , у вас действительно не должно быть слишком много проблем из-за конфликтов слияния. Лучший совет - делать это рано и часто, чтобы не отставать от изменений других людей. Простое добавление файлов в проект не должно приводить к конфликту, если только они не будут добавлены в одной и той же точке дерева проекта. Мы использовали Xcode в нашей команде в течение многих лет, и мы очень редко получаем конфликты: только если кто-то реструктурировал проект.

К счастью, поскольку формат файла XCode является текстовым, конфликты, как правило, довольно легко разрешать, когда они возникают, в отличие от «плохих старых дней» Codewarrior с его двоичным форматом.

...