提问者:小点点

Xcode5中的*. xccheckout文件应该在VCS下被忽略吗?


Apple在Xcode 5中引入了一种新的与项目相关的文件类型:“xccheckout”。

该文件位于". xcodeproj/project.xcworkspace/xcshare ddata/"目录中,似乎与项目的版本管理系统有关。

这里有一个示例文件:http://pastebin.com/5EP63iRa

我认为这种类型的文件应该在VCS下被忽略,但我不确定。

所以问题如下:

  1. 应该忽略“xccheckout”吗?
  2. 它的目的是什么?

共3个答案

匿名用户

您应该签入Xcode 5. xccheckout文件;一般来说,应该提交xcshare ddata中的文件。

. xccheckout文件包含有关工作区中使用哪些存储库的元数据。对于单个存储库中的单个项目,这没有太大区别。但是如果您使用的工作区具有来自不同存储库的多个项目,工作区中存在.xccheckout文件可以让Xcode知道组成工作区的所有组件是什么以及从哪里获取它们。

匿名用户

xccheckout文件包含VCS元数据,因此不应签入VCS。

另一方面:签入此文件可能不会造成合并困难或其他问题。

如果您想忽略此文件(我建议),您应该将此行添加到项目的. gitignore

*.xccheckout

Abizern的解决方案不适用于工作区内的项目。因为,当您使用工作区时,*. xccheckout文件的路径将是:

编辑:此文件的存在是为了管理Xcode对项目中可能有许多VCS系统的了解,请参阅Chris Hanson的回答。对于

匿名用户

这取决于。该文件包含对您正在使用的远程存储库的引用。如果您使用的是集中式VCS,例如Perforce或Subversion,则每个人的远程存储库都是相同的,因此您可以并且应该签入该文件。

如果您使用的是分布式VCS,例如Mercurial或git,但使用它就像使用CVCS一样(换句话说,每个人都从共享存储库直接克隆到他们机器上的个人工作区),那么您可能仍然需要签入它。

但是,如果您使用的DVCS每个人都有自己的远程克隆,例如在标准使用模式中使用GitHub,则您不想签入此文件。如果您这样做了,那么您的拉取请求将要求您的存储库设置复制到其他人的xccheckout文件中,但是您的存储库设置将与其他人的不同,因为您都使用不同的远程存储库。