Apple представила в Xcode 5 новый тип файла, связанный с проектом: «xccheckout».
Этот файл находится в каталоге «.xcodeproj / project.xcworkspace / xcshareddata /», и, похоже, он связан с системой управления версиями проекта.
Пример файла находится здесь: http://pastebin.com/5EP63iRa
Я предполагаю, что этот тип файла должен игнорироваться в VCS, но я не уверен.
Итак, вот вопросы:
- Следует ли игнорировать «xccheckout»?
- Какова его цель?
xcode
git
version-control
xcode5
Артем Абрамов
источник
источник
Ответы:
Вы должны проверить в
.xccheckout
файле Xcode 5 ; в общем, файлы вxcshareddata
должны быть зафиксированы..xccheckout
Файл содержит метаданные о том, что хранилища используются в рабочей области. Для одного проекта в одном репозитории, который не имеет большого значения. Но если вы используете рабочее пространство, в котором есть несколько проектов из разных репозиториев, наличие.xccheckout
файла в рабочем пространстве позволяет XCode узнать, что представляют собой все компоненты, составляющие рабочее пространство, и где их получить.источник
.xcuserdata
поэтому его следует включить..xccheckout
файлы вызывают некоторые безумные проблемы в бета-версии Xcode 6, и я решил удалить их из VCS. Кажется, что это связано с некоторой ошибкой кэширования, и я считаю, что Xcode может автоматически восстанавливать их из VCS каждый раз.*.xccheckout
Файл содержит метаданные VCS, и поэтому не должны быть проверены в VCS.С другой стороны: проверка в этом файле, вероятно, не создаст трудностей слияния или других проблем.
Если вы хотите игнорировать этот файл (который я рекомендую), вы должны добавить эту строку в ваш проект
.gitignore
:Abizern «s решение не будет работать для проектов внутри рабочей области. Потому что, когда вы используете рабочее пространство, путь к
*.xccheckout
файлу будет:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. И это на самом деле игнорирует больше, чем вы хотели бы.Редактировать: Этот файл существует для управления знаниями Xcode о, возможно, многих системах VCS в вашем проекте, см. Ответ Криса Хансона . Для> 99% проектов файл .xccheckout является перебором конфигурации.
источник
project.xcworkspace/
. Это может быть хорошо на данный момент, но я бы не стал рассчитывать на это для новых версий XCode..gitignore
который он предоставляет разработчикам, не должен указываться*.xccheckout
Это зависит. Файл содержит ссылки на используемый вами удаленный репозиторий. Если вы используете централизованную VCS, такую как Perforce или Subversion, удаленный репозиторий каждого будет одинаковым, и вы можете и должны зарегистрировать этот файл.
Если вы используете распределенную VCS, такую как Mercurial или git, но используете ее, как если бы она была CVCS (иными словами, все клонировались из общего репозитория непосредственно в свое личное рабочее пространство на своем компьютере), вы все равно можете проверить его в.
Однако, если вы используете DVCS с каждым, имеющим собственный удаленный клон, например, используя GitHub в стандартном шаблоне использования, вы НЕ хотите регистрировать этот файл. Если вы это сделали, то ваши Pull Requests будут запрашивать ваши настройки репозитория. чтобы скопировать их в файл xccheckout всех остальных, но ваши настройки хранилища будут отличаться от настроек всех остальных, потому что вы все используете разные удаленные хранилища.
источник
Да,
Project.xccheckout
файл должен быть сохранен в вашем хранилище. XCode использует этот файл, чтобы сообщить другим, кто открывает рабочую область, полный список репозиториев контроля версий, используемых рабочей областью, и расположение рабочей копии относительно рабочей области, независимо от того, являются ли эти репозитории Git, SVN или и тем, и другим.Когда вы открываете рабочую область, XCode использует
Project.xccheckout
файл, чтобы уведомить пользователя, что есть другие репозитории, являющиеся частью рабочей области, и спрашивает, какие из них должны быть извлечены. При проверке дополнительных репозиториев Xcode помещает рабочие копии в ту же структуру папок, относящуюся к рабочему пространству, которая была при созданииProject.xccheckout
файла.Как сказал Крис Хэнсон , это, вероятно, не имеет значения для рабочего пространства с одним репозиторием, одним проектом, но для более сложных дел это будет очень удобно.
Вы можете узнать больше об этом в видео сеанса WWDC 2013 Понимание управления исходным кодом в Xcode ; соответствующая часть начинается примерно через 15 минут.
источник
Это то, что у меня есть в моем .gitignore для Xcode.
Он сохраняет все, что связано с местным состоянием того, как проекты ищут меня из хранилища.
Здесь находится файл xccheckout, поэтому по умолчанию он не отслеживается в моей системе.
Xcode стал лучше и разделяет то, что нужно распространять, а что нужно хранить локально. Например; эти строки будут игнорировать схемы сборки по умолчанию, что хорошо, потому что вы можете пометить определенные схемы сборки как общие, и они помещаются в каталог, который не игнорируется.
Точки останова игнорируются, но вы можете пометить определенные точки останова как общие для разных проектов, и они также помещаются в каталог, который не игнорируется.
источник