Un conflitto di controllo di revisione si verifica quando un utente tenta di inviare modifiche apportate alla versione locale del proprio progetto che non si possono riconciliare con l'ultima origine di riferimento nel controllo di revisione.
Questo può accadere per diversi motivi, ma in genere è dovuto a un individuo che apporta modifiche a una parte di un progetto team a cui un compagno del team ha apportato modifiche. L'invio di nuove modifiche senza prima sincronizzare le modifiche apportate da collaboratori causa un conflitto.
Il modo migliore di evitare conflitti per te e i tuoi compagni del team è mantenere abilitata l'estrazione automatica e l'annullamento automatico. Utilizza le tecniche consigliate per il controllo di revisione per ridurre i conflitti di progetto e capire meglio come funziona il controllo di revisione.
Avvisi di prevenzione dei conflitti con Estrazione automatica e Annullamento automatico
Unreal Revision Control consente di evitare la maggior parte dei conflitti abilitando l'estrazione automatica e l'annullamento automatico per impostazione predefinita quando un progetto viene creato utilizzando il controllo di revisione.
Queste funzionalità interagiscono per tentare automaticamente di estrarre un asset quando viene apportata una modifica e annullare automaticamente la modifica se l'estrazione non riesce. Il sistema attiva un avviso che ciò si è verificato per evitare che si verifichi un conflitto.
Questi avvisi vengono attivati principalmente nei due scenari seguenti:
Tentativo di apportare modifiche agli asset estratti da un compagno del team
Se si tenta di apportare modifiche a un asset attualmente estratto da un altro compagno del team, le modifiche vengono automaticamente annullate per impedire di apportare modifiche agli asset che il compagno del team ha estratto in modo esclusivo.
Non è necessario intraprendere alcuna azione quando ciò accade perché il conflitto è già stato evitato, ma se è necessario apportare modifiche all'asset in questione è meglio coordinarsi con il compagno del team per eseguire di nuovo l'archiviazione, sincronizzare le ultime modifiche e procedere con le proprie.
La prima volta che ciò si verifica, viene visualizzata la seguente modalità di avviso che indica quali modifiche sono state annullate e a chi sono state estratte. Se desideri visualizzare questo avviso ogni volta, deseleziona la casella di controllo "Non mostrarmelo più".
Successivamente, una notifica di messaggio in sovraimpressione ti informerà ogni volta che ciò si verifica.
Il tentativo di apportare modifiche agli asset non viene sincronizzato con la versione più recente
Se provi ad apportare modifiche a un asset per il quale non hai ancora sincronizzato la versione più recente, le modifiche vengono annullate automaticamente per impedire di apportare modifiche che non è possibile archiviare in seguito.
In questo caso, è sufficiente sincronizzare le ultime novità e procedere con le modifiche.
La prima volta che ciò si verifica vedrai la seguente modalità di avviso che ti informa delle modifiche annullate. Se desideri visualizzare questo avviso ogni volta, deseleziona la casella di controllo "Non mostrarmelo più".
Successivamente, una notifica di messaggio in sovraimpressione ti informerà ogni volta che ciò si verifica.
Messaggi di errore in conflitto
I conflitti risultano più comuni quando le opzioni Estrazione automatica e Annullamento automatico sono disattivate. Le circostanze che causano conflitti in Unreal Revision Control includono:
- Mancata sincronizzazione regolare con l'ultima versione
- Applicazione di modifiche senza prima estrarre un asset
- Lavoro offline
Nelle sezioni seguenti vengono illustrati gli errori di conflitto e le cause comuni che puoi incontrare.
Non agli ultimi conflitti
Un tipo di conflitto si verifica quando si tenta di sincronizzare le modifiche più recenti o di archiviare e sono state apportate modifiche a un asset che è stato modificato e archiviato da qualcun altro in uno snapshot più recente di quello sincronizzato più di recente.
In questo caso si verifica un conflitto perché sono state apportate modifiche a una versione obsoleta dell'asset.
In questo caso, si riceve un messaggio di errore che informa sugli asset in conflitto e su chi ha apportato le ultime modifiche che è necessario sincronizzare. L'unica opzione per risolvere il conflitto è sincronizzare le ultime modifiche e sovrascrivere le tue.
Una volta sincronizzata l'ultima versione e sovrascritta, è possibile estrarre gli asset da modificare e successivamente apportare e archiviare le modifiche.
Conflitti di asset estratti
Un altro tipo di conflitto si verifica quando sono state apportate modifiche a un asset estratto da un altro utente e si tenta di sincronizzare le modifiche più recenti o di archiviarle.
Il conflitto si verifica perché hai apportato modifiche a qualcosa che non hai il diritto di modificare poiché viene estratto in esclusiva da un compagno del team.
In questo caso, riceverai un errore che ti informa su quali asset hai modificato che non hai estratto e le istruzioni per coordinarti con il tuo compagno del team.
Se vuoi ignorare la modifica, puoi ripristinare le modifiche a singoli asset in conflitto tramite il menu contestuale del controllo di revisione e ritentare la sincronizzazione o l'archiviazione.
Duplicare i conflitti degli asset
Un terzo e raro tipo di conflitto può verificarsi se due compagni del team creano accidentalmente asset con lo stesso nome e percorso di file e tentano di salvare e archiviare questi oggetti in modo indipendente. La prima persona che esegue l'archiviazione ha esito positivo, mentre la seconda persona riceve un messaggio di errore.
Rinominare il secondo oggetto è la migliore linea di condotta che non comporta la cancellazione dell'oggetto. Un'alternativa potrebbe essere cambiare la posizione dell'asset nella gerarchia del progetto: in questo modo, finché il percorso del file è diverso, non si verificheranno conflitti.
Lavoro offline
Anche se è possibile portare avanti alcuni lavori su un progetto UEFN mentre si è offline, questo non è consigliabile. Lavorare offline rischia di causare conflitti con i colleghi perché gli asset non si possono estrarre senza connessione Internet e due persone potrebbero lavorare sulla stessa cosa contemporaneamente.
Se si lavora offline, si consiglia di:
- Comunicare in anticipo con i propri compagni del team su cosa si intende lavorare e, se possibile, estrarre asset prima di perdere la connessione.
- Ristabilire la connessione Internet il prima possibile, sincronizzare e archiviare tutte le modifiche apportate.