Apple hat in Xcode 5 einen neuen projektbezogenen Dateityp eingeführt: "xccheckout".
Diese Datei befindet sich im Verzeichnis ".xcodeproj / project.xcworkspace / xcshareddata /" und scheint mit dem Versionskontrollsystem des Projekts in Beziehung zu stehen.
Eine Beispieldatei finden Sie hier: http://pastebin.com/5EP63iRa
Ich nehme an, dass dieser Dateityp unter VCS ignoriert werden sollte, bin mir aber nicht sicher.
Also hier sind die Fragen:
- Sollte "xccheckout" ignoriert werden?
- Was ist seine Aufgabe?
xcode
git
version-control
xcode5
Artem Abramov
quelle
quelle
Antworten:
Sie sollten eine Xcode 5-
.xccheckout
Datei einchecken . Im Allgemeinen sollten Dateien inxcshareddata
festgeschrieben werden.Eine
.xccheckout
Datei enthält Metadaten darüber, welche Repositorys in einem Arbeitsbereich verwendet werden. Für ein einzelnes Projekt in einem einzelnen Repository macht das keinen großen Unterschied. Wenn Sie jedoch einen Arbeitsbereich verwenden, der mehrere Projekte aus verschiedenen Repositorys enthält,.xccheckout
kann Xcode durch das Vorhandensein einer Datei im Arbeitsbereich erkennen, welche Komponenten einen Arbeitsbereich ausmachen und wo sie abgerufen werden können.quelle
.xcuserdata
sodass es enthalten sein sollte..xccheckout
Dateien einige verrückte Probleme in Xcode 6 Beta, und ich habe beschlossen, sie aus VCS zu entfernen. Scheint mit einem Caching-Fehler verbunden zu sein, und ich glaube, Xcode kann sie jedes Mal automatisch aus VCS neu generieren.Die
*.xccheckout
Datei enthält VCS-Metadaten und sollte daher nicht in das VCS eingecheckt werden.Auf der anderen Seite: Das Einchecken in diese Datei führt wahrscheinlich nicht zu Zusammenführungsschwierigkeiten oder anderen Problemen.
Wenn Sie diese Datei ignorieren möchten (was ich empfehle), sollten Sie diese Zeile zu Ihrem Projekt hinzufügen
.gitignore
:Die Lösung von Abizern funktioniert nicht für Projekte innerhalb eines Arbeitsbereichs. Wenn Sie einen Arbeitsbereich verwenden, lautet der Pfad zur
*.xccheckout
Datei wie folgt :<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. Und es ignoriert tatsächlich mehr als Sie möchten.Bearbeiten: Diese Datei dient zum Verwalten des Xcode-Wissens über die möglicherweise vielen VCS-Systeme in Ihrem Projekt Antwort von Chris Hanson . Für> 99% der Projekte ist die .xccheckout-Datei ein Konfigurations-Overkill.
quelle
project.xcworkspace/
. Das mag vorerst ok sein, aber ich würde mich bei neuen Xcode-Versionen nicht darauf verlassen..gitignore
, den es Entwicklern zur Verfügung stellt, sollte nicht spezifiziert werden*.xccheckout
Es hängt davon ab, ob. Die Datei enthält Verweise auf das von Ihnen verwendete Remote-Repository. Wenn Sie ein zentrales VCS wie Perforce oder Subversion verwenden, ist das Remote-Repository aller Benutzer identisch, sodass Sie die Datei einchecken können und sollten.
Wenn Sie ein verteiltes VCS wie Mercurial oder git verwenden, es jedoch so verwenden, als wäre es ein CVCS (mit anderen Worten, jeder hat aus einem freigegebenen Repository direkt in seinen persönlichen Arbeitsbereich auf seinem Computer geklont), möchten Sie es möglicherweise trotzdem überprüfen im.
Wenn Sie jedoch ein DVCS verwenden, bei dem jeder seinen eigenen Remote-Klon hat, z. B. GitHub in seinem Standardverwendungsmuster, möchten Sie diese Datei NICHT einchecken. Wenn Sie dies getan haben, werden Sie in Ihren Pull-Anforderungen nach Ihren Repository-Einstellungen gefragt um in die xccheckout-Datei aller anderen kopiert zu werden, aber Ihre Repository-Einstellungen unterscheiden sich von denen aller anderen, da Sie alle unterschiedliche Remote-Repositorys verwenden.
quelle
Ja, die
Project.xccheckout
Datei sollte in Ihr Repository übernommen werden. Xcode verwendet diese Datei, um anderen, die den Arbeitsbereich öffnen, die gesamte Liste der vom Arbeitsbereich verwendeten Quellcodeverwaltungs-Repositorys und den Speicherort der Arbeitskopie mitzuteilen Verhältnis zum Arbeitsbereich , ob es sich bei diesen Repositorys um Git, SVN oder beides handelt.Wenn Sie den Arbeitsbereich öffnen, verwendet Xcode die
Project.xccheckout
Datei, um den Benutzer darüber zu informieren, dass andere Repositorys Teil des Arbeitsbereichs sind, und fragt, welche ausgecheckt werden sollen. Beim Auschecken zusätzlicher Repositorys platziert Xcode die Arbeitskopien in derselben arbeitsbereichsbezogenen Ordnerstruktur wie beimProject.xccheckout
Generieren der Datei.Wie Chris Hanson sagte, spielt es wahrscheinlich keine Rolle für einen Arbeitsbereich mit einem einzigen Repository und einem Projekt, aber für komplexere Angelegenheiten wird es in der Tat sehr praktisch sein.
Weitere Informationen hierzu finden Sie im WWDC 2013-Sitzungsvideo Grundlegendes zur Quellcodeverwaltung in Xcode . Der entsprechende Teil beginnt bei ca. 15 Minuten.
quelle
Dies ist, was ich in meinem .gitignore für Xcode habe.
Es hält alles, was mit dem lokalen Status der Suche der Projekte für mich zusammenhängt, aus dem Repository heraus.
Die xccheckout-Datei befindet sich hier, sodass sie auf meinem System standardmäßig nicht verfolgt wird.
Xcode ist besser geworden und trennt, was geteilt und was lokal aufbewahrt werden muss. Beispielsweise; Diese Zeilen ignorieren die Standard-Build-Schemata. Dies ist in Ordnung, da Sie bestimmte Build-Schemata als freigegeben markieren können. Sie werden in einem Verzeichnis abgelegt, das nicht ignoriert wird.
Haltepunkte werden ignoriert, aber Sie können bestimmte Haltepunkte als projektübergreifend markieren und sie werden auch in einem Verzeichnis abgelegt, das nicht ignoriert wird.
quelle