Quando mettiamo i file del modello Core Data sotto controllo di versione con git, abbiamo sempre un tempo orribile che unisce le modifiche: l'unico modo sicuro che abbiamo trovato per evitare di unire le modifiche manualmente è comunicare tra il team per bloccare off accesso al modello mentre una persona apporta le modifiche e le spinte necessarie, quindi la persona successiva, ecc. Sicuramente esiste un modo migliore per gestirlo, ma come novellino del git non viene in mente nessuna soluzione ovvia. Qualche suggerimento?Come posso appropriatamente approcciare il controllo della versione e i modelli di Core Data?
risposta
Per quanto ho visto, non esiste un modo più sicuro in questo momento perché il modello è memorizzato in un formato che non si presta alla fusione. Normalmente faccio esattamente ciò che fai, ho una persona che lavora sul modello alla volta per evitare collisioni.
Non appena si avvia il mantenimento dei modelli di mappatura della migrazione, almeno è possibile confrontare modelli di dati e dare un'occhiata alle modifiche. La stessa funzionalità di confronto sarebbe ottima anche nelle revisioni SCM dei modelli di dati e renderebbe la vita molto più semplice.
Grazie Martin - daremo un'occhiata a questo. –
Mentre non c'è modo di aggirare il problema della fusione dei modelli di dati di base, ho creato un driver git diff per i file del modello dati core che dovrebbe rendere le cose un po 'più semplici (vedere README per istruzioni su come configurarlo)
https://github.com/chaitanyagupta/XCDataModelPrinter
una volta che hai impostato XCDataModelPrinter come driver git-diff, si può fare un paio di cose per rendere la fusione un po 'più facile:
modifiche Review apportate al modello nel nostro settore
git diff other-branch...my-branch -- /path/to/model
le modifiche apportate al modello nell'altro ramo
git diff my-branch...other-branch -- /path/to/model
Dopo aver esaminato le modifiche, proviamo e facciamo l'unione sul nostro ramo:
git merge other-branch
Se git didn' t segnalare un conflitto di unione, quindi rivedere i risultati di unione (vedrai una diff combinata in questo caso)
git diff --cached /path/to/model
Se th l'unione si è tradotta in un conflitto, c'è uno dei due percorsi che puoi intraprendere: controlla il file del modello nel tuo ramo personale e aggiungi manualmente le modifiche apportate all'altro, o viceversa. Supponendo che si desidera utilizzare il primo percorso:
Scopri le modifiche al modello nel nostro ramo:
git checkout --ours -- /path/to/model
Utilizzando il comando diff sopra per vedere le modifiche effettuate in un altro ramo, aggiungere manualmente tali modifiche e recensione:
git diff -- /path/to/model
Quando si è soddisfatti, basta git-aggiungere il file modello di modo che il suo non è più contrassegnato come unmerged, e impegnarsi:
git add /path/to/model
git commit
- 1. come funziona il controllo della versione?
- 2. .NET C# versione di Core Data
- 3. Schema di controllo della versione nidificato?
- 4. Come configurare il controllo della versione distribuita in un'azienda
- 5. Come utilizzare il controllo della versione con il codice VBA?
- 6. Core Data e NSOperation
- 7. Core Data NSPredicate controllo per il valore BOOL
- 8. Core Data e multithreading
- 9. Core Data e impostazione BOOL
- 10. Come testare unitamente i miei modelli ora che sto usando Core Data?
- 11. Come funziona il controllo della versione con LabVIEW VI?
- 12. astratte entità e l'eredità di Core Data
- 13. Autotools e controllo versione
- 14. Controllo della versione di Windows su W10
- 15. Come posso ottimizzare questa ricerca basata su Core Data?
- 16. Controllo versione distribuito e controllo accessi
- 17. Come posso archiviare UIImages nel mio database di Core Data?
- 18. Controllo versione Virtualenv e Source
- 19. Controllo della versione di NetBeans per newb?
- 20. Come si disattiva il controllo della versione in Android Studio?
- 21. Git: come elencare tutti i file sotto controllo di versione insieme alla data dell'autore?
- 22. Umbraco: funziona con il controllo della versione? test/produzione?
- 23. Core Data and Core Location
- 24. Abilita Python a utilizzare tutti i core per il montaggio di modelli scikit-learn
- 25. Come acquisire i modelli di controllo predefiniti di WPF 4.0?
- 26. Git come sistema di backup e controllo versione
- 27. Core Data sincronizzabili & com.apple.syncservices.Syncable
- 28. UITableView Core Data riordino
- 29. Un buon video per spiegare il controllo della versione?
- 30. Come salvare la data e l'ora in cui un oggetto di Core Data è creato
Grazie Marcus. Dovremo essere più disciplinati con la nostra comunicazione! –