Best practice per il controllo delle versioni in Unity?


11

Sono un po 'confuso su come usare il controllo versione con Unity, in particolare con oggetti come scene o prefabbricati che non sono solo codice.

Abbiamo avuto un problema di recente quando io e il mio collega stavamo lavorando su diverse parti della stessa scena. che ha provocato conflitti, ramificazioni e fusione a bizzeffe.

Alla fine la mia revisione è stata comunque annullata dalle sue modifiche.

L'unico modo che vedo al momento è che a turno lavoriamo sugli stessi oggetti, ma non sembra molto conveniente, soprattutto perché tutto il lavoro che stiamo attualmente facendo è nelle scene.

Cosa fanno di solito le persone in queste situazioni?

(Stiamo usando Mercurial, BitBucket e SourceTree.)


1
Erm. Vuoi commentare perché sono stato sottoposto a downvoting meno di 5 minuti dopo averlo chiesto? Non posso migliorare la domanda se non so cosa c'è che non va.
Kaworu,

2
Ho anche incontrato questo. Non puoi mettere le sceneggiature senza problemi, ma le scene ecc. Sembrano più difficili
Ewan,

1
Questi file di scena sono file di testo difficili da unire o sono file binari meno impossibili? Se sono binari, Unity sembra fornire strumenti di fusione (e forse diff?) .
Nathan Cooper,

@NathanCooper Sono binari per quanto posso dire. Almeno si comportano come binari e aprirli in un editor di testo mi dà lo stesso carico di mumbo-jumbo di qualsiasi altro file compilato. Non sapevo di Smart Merge. Grazie!
Kaworu,

Risposte:


6

Puoi provare a seguire la soluzione se stai usando GitHub.

  1. In unità aprire Modifica-> Impostazioni progetto -> Editor, quindi in Impostazioni Impostazioni progetto.
  2. Cambia "Modalità controllo versione" in "Meta file visibili".
  3. Cambia "Modalità serializzazione risorse" in "Forza testo".

Questo funziona bene per me.


3

La maggior parte dei sistemi di controllo versione (VCS) sono progettati per il testo. Di solito hanno funzionalità molto potenti e convenienti per confrontare ( diff) e unire il codice sorgente, e alcuni strumenti possono persino unire automaticamente le modifiche (e fare un lavoro decente nell'indovinare come le modifiche dovrebbero essere unite e a che punto lo sviluppatore dovrebbe essere sollecitato a fare un unione manuale).

Sarebbe bello avere un supporto migliore diffe unire i file binari dalle rispettive applicazioni che usano quei file. Microsoft Word, ad esempio, consente di confrontare due documenti e, sebbene sia lungi dall'essere un comodo strumento di fusione, è ancora meglio di niente e mi ha fatto risparmiare ore in più occasioni. Sfortunatamente, la funzionalità di fusione di solito è supervisionata nei prodotti software o difficile da implementare (come visualizzi una diffscena 3D?)

Quando si tratta di file binari, si ottiene poco aiuto da VCS. Non solo non sono in grado di archiviare le modifiche successive in modo efficiente, ma non possono nemmeno aiutarti a unire le modifiche.

Due anni fa, ho posto una domanda molto simile sull'uso del controllo di versione nei software di editing video . Credo che anche qui le risposte fornite alla mia domanda si applichino parzialmente, l'unica (ma importante) differenza è che la mia domanda riguardava file di grandi dimensioni, mentre nel tuo caso i file binari sono probabilmente relativamente piccoli.

L'approccio che hai trovato, ovvero "alternativamente lavorando sugli stessi oggetti", è quello giusto. Se non riesci a unirti, non lavorare in parallelo sulle stesse cose. Se lavori nello stesso ufficio, potrebbe essere facile da fare. Altrimenti, la maggior parte dei sistemi di controllo della versione ( incluso quello che usi ; è anche discusso qui in un contesto di BitBucket) supporta il blocco , che consiste per l'utente di un VCS per dire, attraverso il sistema, che sta lavorando su un determinato file giusto adesso; altri utenti possono caricare la versione più recente del file, ma non sono tenuti a modificarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.