Apple a introduit un nouveau type de fichier lié au projet dans Xcode 5: "xccheckout".
Ce fichier se trouve dans le répertoire ".xcodeproj / project.xcworkspace / xcshareddata /", et il semble qu'il soit lié au système de contrôle de version du projet.
Un exemple de fichier est ici: http://pastebin.com/5EP63iRa
Je suppose que ce type de fichier doit être ignoré sous VCS, mais je ne suis pas sûr.
Voici donc les questions:
- "Xccheckout" doit-il être ignoré?
- Quel est son objectif?
xcode
git
version-control
xcode5
Artem Abramov
la source
la source
Réponses:
Vous devriez vérifier dans un 5 Xcode
.xccheckout
fichier; en général, les fichiersxcshareddata
doivent être validés.Un
.xccheckout
fichier contient des métadonnées sur les référentiels utilisés dans un espace de travail. Pour un seul projet dans un seul référentiel, cela ne fait pas beaucoup de différence. Mais si vous utilisez un espace de travail qui contient plusieurs projets de différents référentiels, la présence d'un.xccheckout
fichier dans l'espace de travail permet à Xcode de savoir quels sont tous les composants qui composent un espace de travail et où les obtenir.la source
.xcuserdata
, il devrait donc être inclus..xccheckout
fichiers causent des problèmes insensés sur Xcode 6 beta, et j'ai décidé de les supprimer de VCS. Semblent être liés à un bogue de mise en cache, et je pense que Xcode peut les régénérer automatiquement à partir de VCS, à chaque fois.Le
*.xccheckout
fichier contient des métadonnées VCS et ne doit donc pas être archivé dans le VCS.D'autre part: l'archivage de ce fichier ne créera probablement pas de difficultés de fusion ou d'autres problèmes.
Si vous souhaitez ignorer ce fichier (ce que je recommande), vous devez ajouter cette ligne à votre projet
.gitignore
:La solution d' Abizern ne fonctionnera pas pour les projets à l'intérieur d'un espace de travail. Parce que, lorsque vous utilisez un espace de travail, le chemin vers le
*.xccheckout
fichier sera:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. Et il en ignore plus que vous ne le souhaiteriez.Edit: Ce fichier existe pour gérer les connaissances de Xcode sur les nombreux systèmes VCS de votre projet, voir la réponse de Chris Hanson . Pour plus de 99% des projets, le fichier .xccheckout est une configuration excessive.
la source
project.xcworkspace/
. Cela pourrait être un problème pour le moment, mais je ne compterais pas dessus pour les nouvelles versions de Xcode..gitignore
qu'il fournit aux développeurs ne doit pas spécifier*.xccheckout
Ça dépend. Le fichier contient des références au référentiel distant que vous utilisez. Si vous utilisez un VCS centralisé tel que Perforce ou Subversion, le référentiel distant de tout le monde sera le même et vous pouvez et devez donc archiver le fichier.
Si vous utilisez un VCS distribué tel que Mercurial ou git, mais que vous l'utilisez comme s'il s'agissait d'un CVCS (en d'autres termes, tout le monde cloné à partir d'un référentiel partagé directement dans son espace de travail personnel sur sa machine), vous voudrez peut-être toujours le vérifier dans.
Cependant, si vous utilisez un DVCS avec tout le monde ayant son propre clone distant, par exemple en utilisant GitHub dans son modèle d'utilisation standard, vous NE souhaitez PAS archiver ce fichier. Si vous l'avez fait, vos Pull Requests vous demanderont les paramètres de votre référentiel pour être copié dans le fichier xccheckout de tout le monde, mais les paramètres de votre référentiel seront différents de ceux de tous les autres car vous utilisez tous des référentiels distants différents.
la source
Oui, le
Project.xccheckout
fichier doit être validé dans votre référentiel. Xcode utilise ce fichier pour indiquer aux autres utilisateurs qui ouvrent l'espace de travail la liste complète des référentiels de contrôle de source utilisés par l'espace de travail et l' emplacement de la copie de travail par rapport à l'espace de travail, si ces référentiels sont Git, SVN ou les deux.Lorsque vous ouvrez l'espace de travail, Xcode utilise le
Project.xccheckout
fichier pour informer l'utilisateur qu'il existe d'autres référentiels faisant partie de l'espace de travail, et demande lesquels doivent être extraits. Lors de l'extraction de référentiels supplémentaires, Xcode place les copies de travail dans la même structure de dossiers relative à l'espace de travail que lors de la création duProject.xccheckout
fichier.Comme Chris Hanson l'a dit, cela n'a probablement pas d'importance pour un espace de travail à référentiel unique et à un projet, mais pour des affaires plus complexes, ce sera très pratique.
Vous pouvez en savoir plus à ce sujet dans la vidéo de la session WWDC 2013 Présentation du contrôle de code source dans Xcode ; la partie concernée commence à environ 15 minutes.
la source
C'est ce que j'ai dans mon .gitignore pour Xcode.
Il garde tout ce qui concerne l'état local de la façon dont les projets me recherchent hors du référentiel.
Le fichier xccheckout est sous ici, il n'est donc pas suivi sur mon système par défaut.
Xcode s'est amélioré et a séparé ce qui doit être partagé et ce qui doit être conservé localement. Par exemple; ces lignes ignoreront les schémas de construction par défaut, ce qui est très bien car vous pouvez marquer des schémas de construction spécifiques comme partagés, et ils sont placés dans un répertoire qui n'est pas ignoré.
Les points d'arrêt sont ignorés, mais vous pouvez marquer des points d'arrêt spécifiques comme partagés entre les projets et ils sont également placés dans un répertoire qui n'est pas ignoré.
la source