Wenn wir Core Data Model-Dateien mit git Versionskontrolle unterstellen, haben wir immer eine schreckliche Zeit Änderungen zu verschmelzen - der einzige sichere Weg, um zu vermeiden, dass Änderungen von Hand zusammengeführt werden müssen, ist die Kommunikation zwischen dem Team zu blockieren Aus dem Zugriff auf das Modell, während eine Person ihre notwendigen Änderungen und Pushs, dann die nächste Person, etc. Sicher gibt es einen besseren Weg, damit umzugehen, aber als Git Novize keine offensichtliche Lösung in den Sinn kommt. Irgendwelche Vorschläge?Wie kann ich Versionskontroll- und Core Data-Modelle sinnvoll angehen?
Antwort
Soweit ich gesehen habe, gibt es zu dieser Zeit keinen besseren Weg, da das Modell in einem Format gespeichert wird, das nicht zum Zusammenführen geeignet ist. Normalerweise mache ich genau das, was Sie tun, lassen Sie jeweils eine Person an dem Modell arbeiten, um Kollisionen zu vermeiden.
Sobald Sie mit der Verwaltung von Migrationszuordnungsmodellen beginnen, können Sie zumindest Datenmodelle vergleichen und sich die Änderungen ansehen. Die gleiche Vergleichsfunktionalität wäre auch bei SCM-Revisionen von Datenmodellen sehr hilfreich und würde das Leben erheblich vereinfachen.
Danke Martin - wir sehen uns das an. –
Während es keine Möglichkeit gibt, das Problem der Kerndatenmodelle zu umgehen, habe ich einen git diff-Treiber für Kerndatenmodelldateien erstellt, der die Dinge ein wenig erleichtern sollte (siehe README für Anweisungen zum Einrichten).
https://github.com/chaitanyagupta/XCDataModelPrinter
Sobald Sie XCDataModelPrinter als git-diff-Treiber eingerichtet haben, können Sie ein paar Dinge tun, um etwas zu machen Verschmelzung leichter:
Bewertung Änderungen an dem Modell in unserer Branche
Bewertung Änderungen an dem Modell in den anderen Zweig gemacht
git diff my-branch...other-branch -- /path/to/model
Nachdem Sie die Änderungen überprüft haben, lassen Sie uns versuchen, die Zusammenführung auf unserer Branche zu tun:
git merge other-branch
Wenn git didn‘ t einen Merge-Konflikt melden und dann die Merge-Ergebnisse überprüfen (in diesem Fall wird ein kombiniertes Diff angezeigt)
Wenn th e merge führte zu einem Konflikt, es gibt einen von zwei Pfaden, die Sie nehmen können: Überprüfen Sie die Modelldatei in Ihrem eigenen Zweig und fügen Sie manuell Änderungen an dem anderen Zweig hinzu oder umgekehrt. Vorausgesetzt, dass Sie den ersten Pfad verwenden mögen:
Check-out-Modell Änderungen in unserer eigenen Niederlassung:
git checkout --ours -- /path/to/model
den Befehl diff Mit über die Änderungen in dem anderen Zweig gemacht, um zu sehen, manuell diese Änderungen hinzufügen und Bewertung:
git diff -- /path/to/model
Sobald Sie zufrieden sind, nur git-add die Modelldatei so seine nicht mehr als unmerged markiert und begehen:
git add /path/to/model
git commit
- 1. Wie kann ich Bogen mit Core Graphics ziehen und wie kann ich drehen, dass arc
- 2. Wie kann man die maschinenabhängige Konfiguration mit SVN und VS2010 angehen?
- 3. Wie kann ich sicher und sinnvoll feststellen, ob ein Zeiger irgendwo in einen bestimmten Puffer zeigt?
- 4. Skalierbarkeit der Java EE-Anwendung. Wie würdest du es angehen?
- 5. Wie würden Sie dieses Problem in F # angehen? (Hochfrequenz-Sensordaten)
- 6. Wie kann es sinnvoll sein, den Operator "Funktionsaufruf" zu überlasten?
- 7. Wie kann man das Maven-Projekt sinnvoll aufbauen?
- 8. iOS-Entwicklung: Wie kann ich meinen Core-Datenspeicherverbrauch straffen?
- 9. Kann ich iTextSharp mit ASP.NET 5 Core
- 10. Kann ich UWP mit .NET Core erstellen?
- 11. Wie kann ich binäre Bilddateien mit Core Graphics lesen?
- 12. Wie kann ich eine ASP Net Core RC2-Lösung debuggen?
- 13. Wie kann ich Core Image Filter zu OpenTok Video hinzufügen?
- 14. Wie kann ich die Systemzeit von einem Core Dump bekommen?
- 15. Wie kann ich URL-Referrer in ASP.NET Core MVC abrufen?
- 16. Wie programmiere ich eine Core- und/oder JMS-Bridge?
- 17. Sind Programmierschulungen sinnvoll?
- 18. Was ist die Idee hinter Image Sprites, wie man es angehen kann?
- 19. Wie kann ich Markierungen in Core Plot mit benutzerdefinierten Beschriftungen verwenden?
- 20. Wie kann ich einen eigenschaftsbasierten Test erneut versuchen, wenn die zufallsgenerierten Eingaben nicht sinnvoll sind?
- 21. Kann nicht Solr Core
- 22. Wie kann ich sinnvoll auf eine ChangeAttributes reagieren: Delegation Pass-Through von WebView?
- 23. Wie macht man WCF-Traces sinnvoll?
- 24. Cookies und ASP.NET Core
- 25. Wie soll ich mein Backend-Design mit dem MEAN-Stack angehen?
- 26. Wie sollte ich ARCTAN angehen (und verhindern, dass es durch Null zerlegt wird), ohne dass ARCTAN2 (n, m) verfügbar ist?
- 27. Wie man den JQuery-Konflikt in jQuery Mobile und Jquery angehen
- 28. UIManagedDocument und Core Data
- 29. EF Core und Azure
- 30. OpenGL Core und Kompatibilität
Danke Marcus. Wir müssen nur disziplinierter mit unserer Kommunikation sein! –