web-dev-qa-db-ja.com

Xcode5の* .xccheckoutファイルはVCSで無視されるべきですか?

Appleは、Xcode 5に新しいプロジェクト関連タイプのファイル「xccheckout」を導入しました。

このファイルは「.xcodeproj/project.xcworkspace/xcshareddata /」ディレクトリにあり、プロジェクトのバージョン管理システムに関連しているようです。

サンプルファイルは次のとおりです。 http://Pastebin.com/5EP63iRa

VCSではこのタイプのファイルは無視されると思いますが、よくわかりません。

質問は次のとおりです。

  1. 「xccheckout」を無視する必要がありますか?
  2. その目的は何ですか?
157
Artem Abramov

should Xcode 5 .xccheckoutファイルをチェックインします。一般に、xcshareddataのファイルはコミットする必要があります。

.xccheckoutファイルには、ワークスペースで使用されているリポジトリに関するメタデータが含まれています。単一のリポジトリ内の単一のプロジェクトで、それほど違いはありません。ただし、異なるリポジトリの複数のプロジェクトを含むワークスペースを使用している場合、ワークスペースに.xccheckoutファイルが存在するため、Xcodeはワークスペースを構成するすべてのコンポーネントがどこにあり、どこにあるかを知ることができます。

109
Chris Hanson

*.xccheckoutファイルにはVCSメタデータが含まれているため、VCSにチェックインしないでください。

一方、このファイルをチェックインしても、マージの問題やその他の問題は発生しません。

このファイルを無視する場合(推奨)、この行をプロジェクトの.gitignoreに追加する必要があります。

*.xccheckout

Abizernsolution は、ワークスペース内のプロジェクトでは機能しません。なぜなら、ワークスペースを使用するとき、*.xccheckoutファイルへのパスは<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekoutになるからです。そして、実際にはあなたが望む以上のものを無視します。

Edit:このファイルは、プロジェクト内のおそらく多くのVCSシステムに関するXcodeの知識を管理するために存在します。 Chris Hanson answerを参照してください。プロジェクトの99%を超える場合、.xccheckoutファイルは構成が過剰です。

63
Berik

場合によります。ファイルには、使用しているリモートリポジトリへの参照が含まれています。 PerforceやSubversionなどの集中型VCSを使用している場合、全員のリモートリポジトリは同じであるため、ファイルをチェックインできます。

Mercurialやgitなどの分散VCSを使用しているが、それをCVCS(つまり、共有リポジトリからマシンの個人ワークスペースに直接クローン化された全員)のように使用している場合、それを確認する必要がありますに。

ただし、標準の使用パターンでGitHubを使用するなど、全員が独自のリモートクローンを持つDVCSを使用している場合、このファイルをチェックインしたくありません。その場合、プルリクエストはリポジトリ設定を要求します。他の人のxccheckoutファイルにコピーされますが、リポジトリ設定は他の人のものとは異なります。これは、すべて異なるリモートリポジトリを使用しているためです。

38
Tim Band

はい、Project.xccheckoutファイルをリポジトリにコミットする必要があります。 Xcodeはこのファイルを使用して、ワークスペースを開く他のユーザーに、ワークスペースで使用されるソース管理リポジトリのリスト全体と、作業コピーの場所これらのリポジトリがGit、SVN、またはその両方であるかどうかのワークスペース。

ワークスペースを開くと、XcodeはProject.xccheckoutファイルを使用して、ワークスペースの一部を形成する他のリポジトリがあることをユーザーに通知し、どちらをチェックアウトするかを尋ねます。追加のリポジトリをチェックアウトすると、XcodeはProject.xccheckoutファイルが生成されたときと同じワークスペース相対フォルダー構造に作業コピーを配置します。

Chris Hanson が言ったように、単一のリポジトリ、1つのプロジェクトのワークスペースではおそらく問題ではありませんが、より複雑な問題では、実際に非常に便利です。

これについては、WWDC 2013セッションビデオで詳しく知ることができます Xcodeのソース管理について ;関連する部分は約15分から始まります。

20
Calrion

これは、Xcodeの.gitignoreにあるものです。

#Xcode
*.xcuserstate
project.xcworkspace/
xcuserdata/

プロジェクトがリポジトリから私を探す方法のローカル状態に関連するものはすべて保持します。

Xccheckoutファイルはこの下にあるため、デフォルトではシステム上で追跡されません。

Xcodeが改善され、共有する必要があるものとローカルに保持する必要があるものが分離されました。例えば;これらの行はデフォルトのビルドスキームを無視します。これは、特定のビルドスキームを共有としてマークでき、無視されないディレクトリに配置されるためです。

ブレークポイントは無視されますが、特定のブレークポイントをプロジェクト間で共有されているとマークすることができ、それらは無視されないディレクトリにも配置されます。

3
Abizern