Mentre si lavora su un progetto nel Workbench, altri membri del team possono eseguire il commit delle modifiche nella copia del progetto presente nel repository. Per poter utilizzare queste modifiche, è possibile "aggiornare" il Workbench in modo che corrisponda allo stato della sezione. Le modifiche che verranno visualizzate saranno specifiche della sezione che il progetto del Workbench è configurato per condividere. L'utente controlla il momento in cui sceglie di effettuare l'aggiornamento.
Il comando di aggiornamento può essere emesso da due posizioni: il menu Team > Aggiorna o la visualizzazione Sincronizzazione. Per comprendere la differenza tra questi due comandi, è importante conoscere i tre diversi tipi di modifiche in entrata:
Quando si seleziona Team > Aggiorna, il contenuto delle risorse locali verrà aggiornato con le modifiche in entrata di tutti e tre i tipi di cui sopra. Per i non conflitti e i conflitti che è possibile unire automaticamente, non vi è alcuna ulteriore azione necessaria (per i conflitti che è possibile unire automaticamente, la risorsa locale modificata viene spostata in un file con il prefisso ".#" solo nel caso in cui l'unione automatica non sia avvenuta nel modo desiderato dall'utente). Tuttavia, per i conflitti che non è possibile unire automaticamente, i conflitti vengono uniti nella risorsa locale mediante uno speciale testo di markup specifico di CVS (per i file ASCII) oppure la risorsa locale modificata viene spostata in un file con il prefisso ".#" (per i file binari). Ciò è corrispondente al funzionamento della riga di comando CVS ma può generare problemi se combinato con il meccanismo di build automatica di Eclipse. Inoltre, prima di aggiornare qualsiasi risorsa locale è spesso opportuno conoscere le modifiche in entrata esistenti. Questi aspetti sono mostrati dalla visualizzazione Sincronizzazione.
Per aprire la visualizzazione Sincronizzazione in modalità in entrata:
Nella modalità in entrata, verranno visualizzate le modifiche di cui è stato eseguito il commit nella sezione dall'ultimo aggiornamento effettuato. La visualizzazione indicherà il tipo a cui appartiene ciascuna modifica in entrata (non in conflitto, in conflitto che è possibile unire automaticamente o in conflitto che non è possibile unire automaticamente). Esistono due comandi per l'aggiornamento (disponibili dal menu di scelta rapida di tutte le risorse della visualizzazione) per gestire i diversi tipi di conflitti: Aggiorna da repository e Sovrascrivi e aggiorna. Quando si seleziona il comando Aggiorna da repository nella visualizzazione Sincronizzazione, vengono elaborate solo le modifiche non in conflitto, mentre i file che presentano i conflitti che possono essere uniti automaticamente o quelli che non possono essere uniti automaticamente rimangono all'interno della visualizzazione (tutti i file la cui elaborazione è stata completata vengono, invece, rimossi dalla visualizzazione). Il comando Sovrascrivi e aggiorna agisce sui due tipi di conflitto. Una volta selezionato questo comando, all'utente verrà richiesto, prima che venga tentata un'unione, se desidera unire automaticamente il contenuto o sovrascriverlo con il file di repository. Se si sceglie di effettuare l'unione automatica, verranno elaborati solo i conflitti che possono essere uniti automaticamente e le modifiche in entrata verranno unite automaticamente con quelle locali. In caso contrario, verranno elaborati tutti i conflitti e le risorse locali verranno sostituite con il contenuto remoto. Questa funzione "di sostituzione" non costituisce il metodo più adatto. Di seguito viene descritta un'alternativa possibile.
Per aggiornare i file non in conflitto e che possono essere uniti automaticamente:
Se il Workbench locale contiene tutte le modifiche in uscita che non possono essere unite automaticamente con quelle in entrata della sezione, invece di eseguire un Sovrascrivi e aggiorna, è possibile unire le differenze manualmente all'interno del Workbench, nel modo riportato di seguito:
Nota: il contenuto del repository non viene modificato quando si effettua l'aggiornamento. Quando si accettano modifiche in entrata, tali modifiche vengono applicate al Workbench. Il repository viene modificato solo quando si esegue il commit delle modifiche in uscita.
Suggerimento: nel riquadro Confronto di strutture, la selezione di un ancestor di un insieme di modifiche in entrata comporterà l'esecuzione dell'operazione su tutti gli elementi secondari appropriati. Ad esempio, selezionando la cartella attiva e scegliendo Aggiorna da repository verranno elaborate tutte le modifiche in entrata che non sono in conflitto e tutte le altre resteranno non elaborate.
Attenzione: la funzione del comando Sovrascrivi e aggiorna descritto sopra si applica solo alla modalità in entrata della visualizzazione Sincronizzazione. Nella modalità in entrata/in uscita della visualizzazione, la funzione relativa alle modifiche in entrata e ai conflitti è identica, ma il comando ripristinerà le modifiche in uscita in tutto il contenuto del repository. Prestare molta attenzione se si utilizza questo comando in modalità in entrata/in uscita.
Programmazione in team con CVS
Sincronizzazione con un repository CVS
Esecuzione del commit
Risoluzione di conflitti
Confronto di risorse
Durata del controllo versione: aggiunta ed esclusione di risorse