Unisci conflitti, «Problemi relazionali»
Un'operazione di unione unisce il contenuto di due rami che hanno un antenato comune ma hanno ricevuto modifiche diverse. La fusione mirata delle filiali viene effettuata principalmente Git Branches visualizza usando il Unisci comando. Un'operazione di unione è inclusa anche in un'azione di pull
Durante l'operazione di unione vengono rilevati diversi stati dei rami di origine e di destinazione e vengono denominati conflitto. Una struttura di progetto non autorizzata derivante dalla fusione viene identificata come un «problema di relazione». A seconda dell'opzione impostata CODESYS Git tenta di risolvere automaticamente questi conflitti quando possibile, oppure questa risoluzione viene lasciata all'utente.
Una volta risolto il conflitto, CODESYS Git cerca sempre di Risincronizza (rileggi il progetto dall'archivio del progetto). Questo viene fatto chiudendo il progetto che è aperto CODESYS e creandone uno nuovo dall'archivio.
CODESYS Git distingue tra due tipi di problemi da risolvere che possono verificarsi durante la fusione:
Conflitti: Conflitti Git puri: uno o più oggetti hanno ricevuto modifiche concorrenti. Possono essere diverse modifiche al contenuto di un oggetto.
La «strategia dei conflitti di fusione» di base è stabilita nel Opzioni Git Merge nel Filiali Git vista. A seconda di questa impostazione, viene eseguita una risoluzione automatica dei conflitti quando possibile, viene intrapresa un'azione di accettazione di base in una direzione specifica oppure i conflitti vengono gestiti manualmente
In caso di risoluzione manuale dei conflitti, gli oggetti in conflitto vengono visualizzati come tali nella Stato e messa in scena vista. Facendo doppio clic su un oggetto in conflitto si apre una vista di confronto. Nella vista di confronto, le modifiche provenienti dai due rami vengono visualizzate fianco a fianco. È possibile eliminare le differenze nei contenuti accettandole specificamente. Se si tratta di conflitti puramente relativi allo spazio dei nomi, è necessario risolverli rinominando o eliminando nell'albero del progetto. Fai clic su «Applica» per risolvere il conflitto. Dopodiché, l'oggetto precedentemente in conflitto viene spostato automaticamente nell'area «Modifiche in fasi».
«Problemi relazionali»: Le modifiche concorrenti hanno comportato una struttura del progetto non valida in CODESYS, che non può essere gestita dalla funzione Git merge. Le modifiche potrebbero essere state apportate esternamente nel file system con strumenti esterni. Oppure una creazione simultanea di un oggetto dello stesso tipo e/o dello stesso nome è stata salvata da rami diversi e questo oggetto si trova quindi nello stesso spazio dei nomi nel CODESYS progetto. Questo non è consentito in un CODESYS progetto. Oppure si è verificata una relazione tra oggetto padre/figlio non valida. Un'altra possibilità è che i problemi di relazione derivino da precedenti fusioni, in cui sono stati deliberatamente ignorati per poter continuare a funzionare per il momento
Ad esempio, si verifica che due configurazioni di allarme siano inserite sotto un dispositivo, il che non è consentito.
L'utente deve correggere manualmente la struttura del progetto utilizzando i mezzi disponibili (unire un oggetto in un altro, eliminare, rinominare o spostare) per ottenere nuovamente un progetto coerente.
Importante
partire dalla versione 1.2.0.0, un progetto può anche essere ulteriormente elaborato con problemi di relazione esistenti (ignora). Attenzione: in tal caso, le modifiche al progetto vengono annullate mediante una successiva risincronizzazione. Motivo: l'operazione di risincronizzazione carica la versione del progetto dal file system che è stata salvata prima che il problema
Nel Stato e messa in scena view, tu come utente puoi controllare e modificare un conflitto come segue:
Helpful commands are available in the context menu of a conflicting object. The current selection depends on the situation:
Mostra tutti gli oggetti interessati / Mostra questo oggetto: Gli oggetti o gli oggetti verranno evidenziati nel Dispositivi vista del progetto.
Risolvi usando il loro: viene applicato lo stato del ramo di origine.
Risolvi usando il nostro: viene applicato lo stato del ramo di destinazione.
Risolvi automaticamente: CODESYS Git cerca di consolidare le modifiche stesse.
Contrassegna come risolto: L'oggetto attualmente esistente nel progetto viene applicato e considerato la risoluzione del conflitto. L'oggetto corrispondente è stato messo in scena.
Ignora il problema relazionale: Il problema relativo alla relazione viene ignorato fino alla successiva risincronizzazione. Ciò può essere utile solo quando si desidera poter continuare a lavorare su un progetto e il conflitto non ha importanza
Facendo doppio clic su un oggetto in conflitto si apre la vista di confronto dei contenuti dei rami di origine e di destinazione. Nel caso di contenuti concorrenti, i contenuti possono essere applicati da un ramo all'altro come si desidera
Nel Messaggi visualizzazione, è possibile fare doppio clic su un messaggio di errore relativo a un conflitto per aprire l'oggetto interessato.