Tutti gli utenti apportano modifiche alle loro copie di lavoro individuali come di consueto in Control FPWIN Pro7. Gli utenti compilano, scaricano e testano se necessario o richiesto.
È necessario un ulteriore lavoro manuale sulla copia di lavoro nel caso in cui gli utenti aggiungano, eliminino o rinominino un oggetto con Control FPWIN Pro7.
Operare direttamente sulle cartelle e sui file della copia di lavoro (p.es. modificare, cancellare, creare, incollare, rinominare) può distruggere la copia di lavoro e il progetto o la libreria utente!
Nella copia di lavoro, quando si apre un menu contestuale, assicurarsi di utilizzare solo i comandi del sistema di controllo versione esterno che gestisce lo scambio di dati tra la copia di lavoro e l'archivio corrispondente!
Ogni utente può vedere le icone in sovrimpressione delle cartelle e dei file nell'explorer di file che indicano lo stato di modifica dell'oggetto/file/cartella locale rispetto alla revisione originale ricevuta o applicata per l'archivio del progetto o della libreria utente.
In qualsiasi momento, gli utenti possono esaminare le modifiche locali applicate alla loro copia di lavoro (a livello di oggetti o di file) dal momento in cui l'hanno ricevuta dall'archivio del progetto o della libreria (senza unire le proprie modifiche) o quando hanno applicato le loro modifiche. Possono anche confrontare lo stato attuale della loro copia di lavoro con qualsiasi revisione del progetto o della libreria nell'archivio corrispondente (gli utenti possono anche confrontare due revisioni qualsiasi nell'archivio del progetto o della libreria).
Gli utenti ispezionano e ricontrollano le loro modifiche prima di applicarle all'archivio corrispondente.
Gli utenti possono annullare le modifiche locali nella loro copia di lavoro, annullando l'oggetto o il file (il file è l'unità più piccola annullabile), parzialmente (a livello di sottocartella) o completamente (l'intera cartella della copia di lavoro). L'inversione avverrà automaticamente anche nel progetto aperto o nella libreria dell'utente.
Gli utenti applicano le modifiche sulle loro copie di lavoro individuali negli archivi corrispondenti, ad esempio se o quando uno o più utenti hanno bisogno di oggetti nuovi o modificati altrove.
Il primo utente che applica le modifiche può farlo senza alcuna richiesta da parte del sistema.
Al secondo e a tutti i successivi utenti che applicano le modifiche può essere richiesto di aggiornare la propria copia di lavoro prima di poter applicare le modifiche, in modo che le modifiche apportate da altri utenti agli stessi oggetti possano essere unite prima ai loro oggetti (modificati).
Il processo di unione avviene solo quando la copia di lavoro viene aggiornata dall'archivio corrispondente. Un'unione riuscita sostituisce sempre completamente l'oggetto giusto nel file di progetto. Se l'unione non avviene correttamente, il motivo va ricercato nelle modifiche contrastanti per lo stesso oggetto, ad esempio due utenti che hanno usato due valori iniziali diversi per la stessa variabile. In questo caso, tutti gli utenti mantengono la propria versione finché il conflitto non viene risolto. Gli oggetti e i file con conflitti irrisolti rimangono nella cartella della copia di lavoro finché non vengono risolti.
Se l'unione non può essere eseguita automaticamente, il conflitto di merge risultante deve essere risolto manualmente con l'aiuto degli strumenti e dei menu del sistema di controllo versione utilizzato.
A ogni applicazione in un archivio di progetto o di libreria, deve essere aggiunto un testo di commento in grado di aiutare gli altri utenti a capire le modifiche applicate (che cosa è stato cambiato e perché, magari un errore o il numero del pacchetto di lavoro). Il numero di revisione, l'autore, la data e l'ora vengono aggiunti automaticamente e possono essere controllati in qualsiasi momento con i dati di log degli oggetti (cronologia).
In qualsiasi momento, gli utenti possono esaminare la cronologia delle modifiche degli oggetti/file nell'archivio del progetto o della libreria dalla loro copia di lavoro e vedere chi ha cambiato che cosa, quando e perché (il perché dipende dal fatto che le applicazioni precedenti siano state fatte con commenti).
Tutti gli utenti possono aggiornare la propria copia di lavoro dall'archivio corrispondente, ad esempio se hanno bisogno o vogliono integrare gli oggetti o le modifiche degli altri utenti. Eventuali conflitti di merge durante l'aggiornamento devono essere risolti manualmente con l'aiuto degli strumenti e dei menu del sistema di controllo versione utilizzato. Dopo l'aggiornamento o la risoluzione di eventuali conflitti di merge, le modifiche vengono automaticamente incorporate e unite nella copia di lavoro degli utenti, con le seguenti modalità:
Quando il progetto viene chiuso, la copia di lavoro annidata viene aggiornata e il progetto e le librerie dell'utente vengono aggiornati dalla copia di lavoro annidata non appena il progetto viene riaperto dall'utente. La copia di lavoro (annidata) è il master (locale) del file di progetto con le sue librerie utente con controllo versione!
Quando il progetto è aperto, tutti gli oggetti modificati vengono aggiornati automaticamente, a meno che non siano aperti in un editor.
Gli oggetti attualmente aperti in un editor verranno aggiornati in base al loro stato di modifica:
Oggetti non modificati: Il processo di unione chiude la finestra dell'editor e aggiorna l'oggetto. Quando l'utente riapre l'oggetto, esso si troverà nello stato aggiornato.
Oggetti modificati: Viene visualizzato un messaggio che chiede all'utente di decidere se le modifiche correnti nell'editor vadano scartate o salvate. Se le modifiche correnti vengono scartate, l'editor viene chiuso e l'oggetto viene aggiornato. Se le modifiche correnti vengono salvate, l'oggetto non viene aggiornato.
Tutti gli utenti possono tornare a una revisione precedente nell'archivio del progetto o della libreria aggiornando o ripristinando la propria copia di lavoro a quella revisione. Tale azione si rifletterà automaticamente anche nel progetto o nella libreria. Tuttavia, tutte le modifiche apportate alla copia di lavoro ripristinata non possono essere applicate all'archivio, poiché si basano su una revisione obsoleta.