Hintergrund : git - oder jeder andere SCM - kann Storyboards, xibs und pbxproj Dateien "erfolgreich" zusammenführen, da sie im Kern nur XML sind. Manchmal gibt es Konflikte, die durch die üblichen Konfliktlösungsstrategien gelöst werden können. Aber xibs und Storyboards sind serialisierte Formate einiger ziemlich komplexer Datenstrukturen, so dass der Spaß beginnt.
Genau wie bei anderem Quellcode garantiert eine erfolgreiche Zusammenführung nicht, dass alle zusammengeführten Änderungen korrekt zusammen funktionieren. Mit den fraglichen Dateien kann git erfolgreich zusammenführen, aber Xcode zeigt manchmal einen Fehler "Konnte Archiv nicht lesen" an, wenn Sie versuchen, es zu öffnen - d. H. Die Zusammenführung hat die XIB beschädigt.
Ich habe Vorschläge gesehen, wie git ignition .xibs ignoriert (nicht praktikabel), oder in .gitattributes disable diff durch Einstellung von
%Vor%Technisch gesehen behebt dies das Problem mit dem Zusammenführungskonflikt / korrupten xib - aber jetzt gehen die Änderungen von jemandem verloren?
Auch die beste Empfehlung, die ich für die Projektdatei gesehen habe, ist merge = union in .gitattributes:
%Vor%Frage : Ich habe ziemlich viel gesucht und es scheint keine gute Lösung zu geben. Können mir Erfahrungswerte sagen, was in ein paar Anwendungsfällen passiert?
Im Projekt benenne ich eine Datei von x in y um und lösche DateiA. In der Zwischenzeit hat ein anderer Programmierer Änderungen vorgenommen, um Datei C hinzuzufügen und Datei D zu löschen. Was ist das Ergebnis der Zusammenführung? Ich bin mir sicher, dass die tatsächlichen Dateisystemänderungen korrekt sind, aber im Xcode Navigator-Panel:
Wenn git .xib-Dateien ignoriert - bekomme ich zumindest eine Warnung, dass eine Datei geändert wurde und nicht bearbeitet wird?
Ich würde in diesen Tagen kein spezielles .gitattributes
für Projektdateien oder Nibs setzen.
Ihre Probleme beim Zusammenführen gleichzeitiger Änderungen an Xcode-Projekten und xibs / Storyboards gibt es in jedem Team mit mehr als einem Entwickler.
Ein paar Tricks zum Umgang mit Xcode-Projektkonflikten:
.xcconfig
files, um Ihre Projekte zu konfigurieren und nicht den Abschnitt "Build-Einstellungen" . Config-Dateien sind trivial zu verschmelzen. Im Zweifelsfall ist es mein bester Ratschlag, die Seite zu verschmelzen, zu entspannen und die Ergänzungen erneut zu spielen.
Das Format der XIBs (und damit der Storyboards) hat sich in den letzten Monaten stark verändert. Ich habe festgestellt, dass zusätzliche Objekte an die internen Sammlungen der Datei angehängt werden und Zusammenführungen können einfach durchgeführt werden. Wenn Sie Änderungen an demselben Objekt vornehmen, müssen Sie möglicherweise manuell dorthin gelangen.
Dieser Beitrag von Itty Bitty Apps hebt die wichtigsten Änderungen hervor :
Die Vorteile dieses neuen XIB-XML-Formats sind vielfältig:
- XIBs sind viel kleiner (weniger Codezeilen).
- Ein Entwickler kann das XML leicht lesen und verstehen, was es in der Benutzerschnittstelle spezifiziert.
- Das Zusammenführen von XIBs führt jetzt viel seltener zu kaputten XIBs. Vorher würden wir kaum einmal versuchen, ein XIB oder Storyboard zu verschmelzen.
Tags und Links ios git xcode xib uistoryboard