158

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

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

ファイルの例はこちら: http://pastebin.com/5EP63iRa

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

だからここに質問があります:

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

5 に答える 5

109

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

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

于 2013-10-09T00:06:21.080 に答える
63

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

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

このファイルを無視したい場合 (これをお勧めします)、次の行をプロジェクトの に追加する必要があります.gitignore:

*.xccheckout

Abizernソリューションは、ワークスペース内のプロジェクトでは機能しません。*.xccheckoutワークスペースを使用する場合、ファイルへのパスは次のようになるためです<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout。そして、実際には、必要以上に無視されます。

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

于 2013-08-26T15:53:29.567 に答える
38

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

Mercurial や git などの分散型 VCS を使用しているが、それを CVCS のように使用している場合 (つまり、全員が共有リポジトリから自分のマシンの個人用ワークスペースに直接クローンを作成している場合)、それでもチェックする必要があるかもしれません。の。

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

于 2013-12-17T12:11:42.747 に答える
20

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

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

Chris Hansonが言ったように、1 つのリポジトリ、1 つのプロジェクトのワークスペースではおそらく問題にならないでしょうが、より複雑な問題では非常に便利です。

詳細については、WWDC 2013 セッション ビデオUnderstanding Source Control in Xcode を参照してください。関連する部分は約 15 分から始まります。

于 2013-10-23T09:46:02.597 に答える
3

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

#Xcode
*.xcuserstate
project.xcworkspace/
xcuserdata/

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

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

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

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

于 2013-08-20T17:18:01.660 に答える