Aggiornamento

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 visualizzate saranno specifiche per la sezione che il progetto del workbench è configurato a condividere. L'utente stabilisce quando effettuare l'aggiornamento.

Il comando di aggiornamento può essere emesso da due posizioni: il menu Team > Aggiorna o la vista 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). Corrisponde al funzionamento della riga comandi CVS ma può generare problemi se unito al meccanismo di generazione automatica di Eclipse. Inoltre, prima di aggiornare qualsiasi risorsa locale è spesso opportuno conoscere le modifiche in entrata esistenti. Questi aspetti sono mostrati dalla vista Sincronizzazione.

Per aprire la vista Sincronizzazione in modalità in entrata:

  1. In una delle viste Selezione, selezionare le risorse che si desidera aggiornare.
  2. Dal menu a comparsa relativo alle risorse selezionate, selezionare Team > Sincronizza con repository. Verrà aperta la vista Sincronizzazione.
  3. Sulla barra degli strumenti della vista Sincronizzazione, selezionare il pulsante Modalità in entrata per filtrare tutte le eventuali risorse del workbench modificate (modifiche in uscita).

Nella modalità in entrata, verranno visualizzate le modifiche di cui è stato eseguito il commit nella sezione dall'ultimo aggiornamento effettuato. La vista indicherà il tipo a cui appartiene ciascuna modifica in entrata. Esistono due comandi per l'aggiornamento (disponibili dal menu di scelta rapida di tutte le risorse della vista) per gestire i diversi tipi di conflitto: Aggiorna e Sostituisci e aggiorna. Quando si seleziona il comando Aggiorna nella vista Sincronizzazione, verranno elaborate tutte le modifiche selezionate in entrata e con conflitti che possono essere uniti automaticamente, mentre i conflitti che non possono essere uniti automaticamente non verranno aggiornati (i file elaborati correttamente verranno rimossi dalla vista). Il comando Sostituisci e aggiorna agisce sui conflitti e sostituisce le risorse locali 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:

  1. Il riquadro Confronto di strutture situato nella parte superiore della vista Sincronizzazione contiene la gerarchia delle risorse che presentano modifiche in entrata.
  2. Selezionare tutti i file in conflitto e selezionare Aggiorna dal menu a comparsa. Questo consentirà di aggiornare le risorse selezionate che saranno delle modifiche in entrata o dei conflitti che si possono unire automaticamente, e le rimuoverà dalla vista. I conflitti il cui contenuto non si unisce automaticamente rimarranno nella vista.

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 Sostituisci e aggiorna, è possibile unire le differenze manualmente all'interno del workbench, nel modo riportato di seguito:

  1. Nel riquadro Confronto di strutture, se è presente un conflitto nell'elenco di risorse (rappresentato da frecce rosse), aprirlo facendo doppio clic o selezionando Apri nell'editor di confronto dal menu di scelta rapida).
  2. Nell'area di confronto del testo, i dati del workbench locali vengono rappresentati a sinistra ed i dati della sezione del repository a destra. Esaminare le differenze tra i due tipi di dati.
  3. Utilizzare l'area di confronto del testo per unire le modifiche. È possibile copiare le modifiche dalla revisione del file del repository nella copia del file del workbench e salvare il file del workbench unito (mediante il menu a comparsa del riquadro sinistro).
  4. Una volta completata l'unione delle modifiche remote in un locale, scegliere Contrassegna come unito dal menu a comparsa nella vista Sincronizzazione. Ciò consentirà di contrassegnare il file locale come aggiornato e di eseguire il commit delle modifiche.

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: nella vista Sincronizzazione, la selezione della versione originale di un insieme di modifiche in entrata comporterà l'esecuzione dell'operazione su tutti gli elementi secondari appropriati. Ad esempio, selezionando la cartella principale e scegliendo Aggiorna verranno elaborate tutte le modifiche in entrata e con conflitti che possono unirsi automaticamente e non verranno elaborate tutte le altre modifiche in entrata.

Attenzione: la funzione del comando Sostituisci e aggiorna descritto sopra si applica solo alla modalità in entrata della vista Sincronizzazione. Nella modalità In entrata/In uscita della vista, il comportamento per le modifiche in entrata ed i conflitti è lo stesso ma il comando ripristinerà le modifiche in uscita al contenuto del repository. Prestare molta attenzione se si usa questo comando in modalità In entrata/In uscita.

Argomenti correlati
Programmazione in team con CVS
Sincronizzazione con un repository CVS

Attività correlate
Esecuzione del commit
Risoluzione dei conflitti
Confronto di risorse
Durata del controllo versione: aggiunta ed esclusione di risorse

Riferimenti correlati
CVS
Vista Sincronizzazione