Appleは、Xcode 5に新しいプロジェクト関連タイプのファイル「xccheckout」を導入しました。
このファイルは「.xcodeproj/project.xcworkspace/xcshareddata /」ディレクトリにあり、プロジェクトのバージョン管理システムに関連しているようです。
サンプルファイルは次のとおりです。 http://Pastebin.com/5EP63iRa
VCSではこのタイプのファイルは無視されると思いますが、よくわかりません。
質問は次のとおりです。
should Xcode 5 .xccheckout
ファイルをチェックインします。一般に、xcshareddata
のファイルはコミットする必要があります。
.xccheckout
ファイルには、ワークスペースで使用されているリポジトリに関するメタデータが含まれています。単一のリポジトリ内の単一のプロジェクトで、それほど違いはありません。ただし、異なるリポジトリの複数のプロジェクトを含むワークスペースを使用している場合、ワークスペースに.xccheckout
ファイルが存在するため、Xcodeはワークスペースを構成するすべてのコンポーネントがどこにあり、どこにあるかを知ることができます。
*.xccheckout
ファイルにはVCSメタデータが含まれているため、VCSにチェックインしないでください。
一方、このファイルをチェックインしても、マージの問題やその他の問題は発生しません。
このファイルを無視する場合(推奨)、この行をプロジェクトの.gitignore
に追加する必要があります。
*.xccheckout
Abizern の solution は、ワークスペース内のプロジェクトでは機能しません。なぜなら、ワークスペースを使用するとき、*.xccheckout
ファイルへのパスは<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
になるからです。そして、実際にはあなたが望む以上のものを無視します。
Edit:このファイルは、プロジェクト内のおそらく多くのVCSシステムに関するXcodeの知識を管理するために存在します。 Chris Hanson answerを参照してください。プロジェクトの99%を超える場合、.xccheckoutファイルは構成が過剰です。
場合によります。ファイルには、使用しているリモートリポジトリへの参照が含まれています。 PerforceやSubversionなどの集中型VCSを使用している場合、全員のリモートリポジトリは同じであるため、ファイルをチェックインできます。
Mercurialやgitなどの分散VCSを使用しているが、それをCVCS(つまり、共有リポジトリからマシンの個人ワークスペースに直接クローン化された全員)のように使用している場合、それを確認する必要がありますに。
ただし、標準の使用パターンでGitHubを使用するなど、全員が独自のリモートクローンを持つDVCSを使用している場合、このファイルをチェックインしたくありません。その場合、プルリクエストはリポジトリ設定を要求します。他の人のxccheckoutファイルにコピーされますが、リポジトリ設定は他の人のものとは異なります。これは、すべて異なるリモートリポジトリを使用しているためです。
はい、Project.xccheckout
ファイルをリポジトリにコミットする必要があります。 Xcodeはこのファイルを使用して、ワークスペースを開く他のユーザーに、ワークスペースで使用されるソース管理リポジトリのリスト全体と、作業コピーの場所これらのリポジトリがGit、SVN、またはその両方であるかどうかのワークスペース。
ワークスペースを開くと、XcodeはProject.xccheckout
ファイルを使用して、ワークスペースの一部を形成する他のリポジトリがあることをユーザーに通知し、どちらをチェックアウトするかを尋ねます。追加のリポジトリをチェックアウトすると、XcodeはProject.xccheckout
ファイルが生成されたときと同じワークスペース相対フォルダー構造に作業コピーを配置します。
Chris Hanson が言ったように、単一のリポジトリ、1つのプロジェクトのワークスペースではおそらく問題ではありませんが、より複雑な問題では、実際に非常に便利です。
これについては、WWDC 2013セッションビデオで詳しく知ることができます Xcodeのソース管理について ;関連する部分は約15分から始まります。
これは、Xcodeの.gitignoreにあるものです。
#Xcode
*.xcuserstate
project.xcworkspace/
xcuserdata/
プロジェクトがリポジトリから私を探す方法のローカル状態に関連するものはすべて保持します。
Xccheckoutファイルはこの下にあるため、デフォルトではシステム上で追跡されません。
Xcodeが改善され、共有する必要があるものとローカルに保持する必要があるものが分離されました。例えば;これらの行はデフォルトのビルドスキームを無視します。これは、特定のビルドスキームを共有としてマークでき、無視されないディレクトリに配置されるためです。
ブレークポイントは無視されますが、特定のブレークポイントをプロジェクト間で共有されているとマークすることができ、それらは無視されないディレクトリにも配置されます。