Wie kann ich verhindern, dass die Projektdatei (.xcodeproj) von Xcode, die häufig von Team bearbeitet wird, geändert wird?

9

Im Gegensatz zu Eclipse oder anderen IDEs ändert Xcode die .xcodeproj-Datei immer dann, wenn festgestellt wird, dass eine Datei oder Gruppe im Projekt hinzugefügt, umbenannt oder entfernt wird. Dies ist sehr unpraktisch, wenn mehr als ein Entwickler am Projekt arbeitet.

Sobald meine SCM-Tools über Konflikte in der .xcodeproj-Datei klagen, kann ich nur eine weitere Kopie des gesamten Projekts auschecken und alle Änderungen, die ich gemacht habe, zusammenfassen und beten, dass niemand "schneller" ist als ich.

Gibt es eine Problemumgehung, um die Standardstrategie von Xcode zu ändern?

    
Evan Wu 19.04.2012, 03:03
quelle

6 Antworten

2
  

Im Gegensatz zu Eclipse oder anderen IDEs ändert Xcode die .xcodeproj-Datei immer dann, wenn festgestellt wird, dass eine Datei oder Gruppe im Projekt hinzugefügt, umbenannt oder entfernt wird.

Im Gegensatz zu Eclipse und einigen anderen IDEs behält Xcode die Liste der Dateien im Projekt und der Gruppenstruktur als Teil der Projektdatei bei (die Datei .xcodeproj ist eigentlich ein Verzeichnis). Die Gruppen müssen nicht physisch als Verzeichnisse existieren und die Dateien können sich tatsächlich an allen möglichen Orten befinden und müssen nicht so benannt werden, wie sie in Xcode erscheinen.

Wenn jemand zu einem Projekt eine neue Datei hinzufügt oder eine Datei aus dem Projekt entfernt oder den Namen einer Datei oder Gruppe ändert, muss dies in Ihrem SCM widergespiegelt werden, weil jemand eine Arbeitskopie auscheckt oder die Datei klont Ihr Repository oder was auch immer, mag es besser, wenn das Projekt mit dem auf der Festplatte übereinstimmt. Wenn zum Beispiel jemand eine Datei entfernt, diese Änderung aber nicht in der Xcode-Projektdatei von anderen widergespiegelt wird, erhalten sie Kompilierungsfehler, nachdem sie update / sync / pull oder was auch immer.

Nachdem das gesagt wurde, enthält die Projektdatei auch eine Last von Benutzereinstellungen, die nicht wichtig sind. In Xcode 4.x setze ich die folgenden Verzeichnisse, die von meinem SCM ignoriert werden sollen:

%Vor%

In früheren Versionen der Projektdateien habe ich Folgendes festgelegt, um ignoriert zu werden:

%Vor%

Das scheint unnötigen Unsinn in Bezug auf SCM herauszufiltern.

    
JeremyP 06.06.2012 15:25
quelle
1

Soweit ich weiß, ist der .xcodeproj eigentlich ein Wrapper für mehrere Dateien, einschließlich .pbxuser und .pbxproj. Ich weiß nicht, welche SCM Sie verwenden, aber dieses Thema wurde auf hier für diejenigen, die es verwenden, angesprochen git, und die Übereinstimmung scheint zu sein, dass die .pbxuser-Datei sowie viele andere nicht in der Versionskontrolle enthalten sein sollten.

    
tronbabylove 19.04.2012 03:41
quelle
0

Das ist nicht Ihre einzige Zuflucht. .xcodeproj-Dateien sind Text. Das Format ist nicht zu schwer zu verstehen. Der übliche Weg, einen Konflikt zu lösen, besteht darin, beide Sätze von Ergänzungen zu übernehmen (obwohl es natürlich Ausnahmen gibt).

    
Ken Thomases 19.04.2012 03:38
quelle
0
  1. Beenden Sie xcode
  2. Öffnen Sie ein Terminal.
  3. Navigieren Sie zu /.xcodeproj/project.xcworkspace
  4. Geben Sie Folgendes ein: mv contents.xcworkspacedata contents.xcworkspacedata.bak
  5. Neustart xcode
foo 24.04.2012 13:31
quelle
0

Was wir in Teams tun, um Konflikte in dieser Datei zu vermeiden, besteht darin, alle Dateien außer der Projektdatei zu übernehmen. In diesem Fall bleibt alles sicher. Sie können die Aktualisierung vermeiden, wenn Sie nur Ihre eigene Projektdatei haben möchten, oder sie sogar in die Datei .gitignore einschließen, damit sie ignoriert wird automatisch.

%Vor%     
Neeku 06.06.2012 13:55
quelle
0

Als Taktik zum Vermeiden von Zusammenführungs -Konflikten : Sie erhalten Konflikte, die eine schmerzhafte manuelle Zusammenführung erfordern, wenn zwei Benutzer die Datei am selben Ort ändern. Das passiert zum Beispiel, wenn zwei Benutzer eine Datei am Ende einer Gruppe hinzufügen, weil beide Änderungen an der gleichen Stelle sind. Wenn jeder neue Dateien an einem anderen Ort hinzufügt (zum Beispiel in alphabetischer Reihenfolge), gibt es keine Zusammenführungs -Konflikte . Oder zumindest weniger.

    
gnasher729 27.08.2014 09:50
quelle

Tags und Links