Что такое «Исходное дерево» в настройках XCode и что я могу с ним сделать? - PullRequest
9 голосов
/ 13 февраля 2011

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

Единственное, что я не мог понять, ясно оДеревья источника описаны в Руководстве по управлению проектом XCode.Вот моя теория, но, поскольку я не мог проверить это откуда-либо (насколько я мог судить), мне бы очень хотелось, чтобы кто-то мог сказать, что мне не хватает, если таковые имеются.

  • Исходное дерево в настройках Xcode больше похоже на a root исходного дерева, которое является папкой в ​​моей локальной файловой системе.
  • Я могу использовать любые файлы в любом из моих проектов Xcode, даже если файлыне находятся в папках проекта, если я могу указать местоположение файлов, связанных с одним из моих исходных деревьев.
  • Теперь у кого-то есть та же папка проекта, которая синхронизируется с моей.У нее есть все файлы в папке проекта, но файлы, на которые ссылается относительное местоположение дерева исходных текстов, могут существовать вне папки проекта.
  • Но у нее есть дерево исходников, с тем же Setting Name для моего, (но абсолютно в другой папке в ее локальной файловой системе), и если у нее есть файл в том же относительном местоположении, то ее Xcode может получить доступ к файлу без проблем.

Так и этоправильно, и мы используем исходные деревья, потому что это позволяет нам работать с файлами вне папки проекта?

И даже если на файлы вне папки проекта ссылается относительный путь к самой папке проекта (не к источнику)дерево), если все эти файлы управляются SVN, поэтому они находятся в одном и том же относительном местоположении с папкой проекта в окружении каждого пользователя, то мне не понадобятся исходные деревья, верно?

1 Ответ

4 голосов
/ 13 февраля 2011

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

То, что вы описали, довольно многоЭто.Думайте как переменная среды операционной системы.Например, в системе сборки, созданной Autotools, на файлы ссылаются по относительным путям, таким как $PROJECT_HOME/src/common/error.cpp.Неважно, где $PROJECT_HOME находится в локальной файловой системе каждого пользователя, если файлы доступны по их относительным путям к каталогу $PROJECT_HOME пользователя.

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

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

Большая часть моего ответа перефразирует то, что вы уже описали, но именно так я сам использую функцию source trees в Xcode.Может быть, другие могут рассказать вам больше об этом.

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