Software testing. Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Spiga

Documenti analoghi
Gestione della Configurazione

Server Galileo.

Strumenti di gestione del ciclo di vita del software

Configuration Management

Prova Finale Controllo delle versioni

Coordinazione Distribuita

Progettaz. e sviluppo Data Base

Piano di gestione della qualità

Corso di Amministrazione di Sistema Parte I ITIL 2

Gestione delle configurazioni software

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Ciclo di vita dimensionale

Sistemi di Antivirus CEFRIEL. Politecnico di Milano. Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione. Politecnico di Milano

EXPLOit Content Management Data Base per documenti SGML/XML

Installazione di GFI WebMonitor

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Database. Si ringrazia Marco Bertini per le slides

SOMMARIO... 3 INTRODUZIONE...

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

lem logic enterprise manager

Manuale Servizio NEWSLETTER

Gestione della Configurazione. Porfirio Tramontana - Ingegneria del Software Gestione della Configurazione 1

ELENCO CLIENTI FORNITORI Patch1

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Eclipse e Subversion

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

LINEE GUIDA PER L EROGAZIONE DELLA FORMAZIONE INTERNA

MODULO PER LA GESTIONE DEI RESI

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Gestione della configurazione del software

4.1 FAX Sollecito consegne via (Nuova funzione)

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Il calendario di Windows Vista

Gestione Turni. Introduzione

Il modello di ottimizzazione SAM

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Copyright Hook & Festa Tutti I diritti riservati

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

SOFTWARE. Aprendo il SW la prima schermata che appare è la seguente:

Gestione Iter Manuale Sistemista. Gestione Iter Manuale Sistemista

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Gestione del workflow

Corso di Amministrazione di Reti A.A. 2002/2003

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Online Help StruxureWare Data Center Expert

NOVITÀ SITI COMMERCIALISTA

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

PORTALE CLIENTI Manuale utente

DINAMIC: gestione assistenza tecnica

Barcode Inventory System

SUAP. Per gli operatori SUAP/amministratori. Per il richiedente

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Gruppo Buffetti S.p.A. Via F. Antolisei Roma

ISTRUZIONI PER LA GESTIONE BUDGET

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

La gestione manageriale dei progetti

I modelli normativi. I modelli per l eccellenza. I modelli di gestione per la qualità. ! I modelli normativi. ! I modelli per l eccellenza

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

CONTENT MANAGEMENT SY STEM

Dipartimento per le Libertà Civili e l Immigrazione

Sistemi operativi. Esempi di sistemi operativi

Le fattispecie di riuso

Ciclo di vita del software

Guida Compilazione Piani di Studio on-line

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Norme per l organizzazione - ISO serie 9000

PS_01 PROCEDURA PER LA GESTIONE DEI DOCUMENTI E DELLE REGISTRAZIONI

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A.

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

MODALITA DI REGISTRAZIONE

Dipartimento per le Libertà Civili e l Immigrazione

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Progettaz. e sviluppo Data Base

Software Servizi Web UOGA

MANUALE DELLA QUALITA Revisione: Sezione 4 SISTEMA DI GESTIONE PER LA QUALITA

INSTALLAZIONE PROCEDURA 770/2011

Ogni documento digitalizzato, carta attivo o passivo, viene di infatti accompagnato identità da una sorta di elettron

FPf per Windows 3.1. Guida all uso

Organizzazione degli archivi

I Sistemi di Gestione Integrata Qualità, Ambiente e Sicurezza alla luce delle novità delle nuove edizioni delle norme ISO 9001 e 14001

Si applica a: Windows Server 2008

B-B WASTEMAN. I vantaggi. Le caratteristiche

Centro Servizi Territoriali (CST) Asmenet Calabria

CONTENT MANAGEMENT SYSTEM

Modello OAIS. Modello di riferimento. Il Modello. Prof.ssa E. Gentile a.a Un modello di riferimento dovrebbe descrivere:

MANUALE DELLA QUALITÀ Pag. 1 di 6

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Fatturazione elettronica con WebCare

Transcript:

1 Software testing Lezione 8 Configuration Management Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Spiga

2 Configuration Management Attività ausiliaria che abbraccia tutto il processo software. Un cambiamento può avvenire in qualunque momento. Le attività di Software Configuration Management hanno lo scopo di: 1. Riconoscere il cambiamento 2. Controllarlo 3. Garantire che sia opportunamente implementato 4. Riferire agli interessati l avvenuto cambiamento

3 Definizione (1) Secondo lo standard IEEE, la CM (Configuration Management) è il processo di identificazione e definizione di tutte le entità presenti nel sistema controllo del cambiamento di queste entità in tutto il loro ciclo di vita registrazione e rilevazione dello stato delle entità e delle richieste di cambiamento verifica della completezza e della correttezza delle entità La definizione dello standard IEEE oggi, però, deve essere ampliata per includere nuove funzionalità extra dei sistemi CM: Manufacturing: gestione della creazione del prodotto software Ad esempio: Quali versioni di file e tool sono stati usati per creare questa versione? Process Management: assicurazione dell esecuzione corretta delle procedure e del modello del ciclo di vita Ad esempio: Tutti i file sono stati testati per verificarne la qualità prima di essere consegnati al cliente? Team Work: controllo del lavoro e delle interazioni tra più sviluppatori su un prodotto Ad esempio: Tutti i cambiamenti dei programmatori apportati localmente sono stati riuniti nell ultima versione del prodotto?

4 Definizione (2) Manufacturing Environment setup è necessario per assicurare un applicazione corretta delle politiche e favorire la standardizzazione Creazione della directory root per il progetto e, all interno di essa, le directory per lo sviluppo del codice, per la documentazione, per la gestione ecc. Definizione dell accesso al repository, chi può accedere a esso e con quali diritti nei vari sottoalberi Definizione di un ambiente standard di sviluppo Definizione di una politica di packaging globale per il prodotto Gestione della Build Impone l uso di dipendenze centralizzate, evitando di includere più versioni dello stesso COTS all interno di un unico build Evita dipendenze circolari Packaging una volta completato un build, CM integra i componenti in un pacchetto d installazione comune Definire ciò che deve essere compattato è compito degli sviluppatori; ogni componente deve avere il proprio file di descrizione del packaging, oltre a tutti gli script post installazione necessari il pacchetto finale deve essere rilasciato dal Configuration Manager, che identifica e tiene traccia anche degli strumenti consegnati

5 Lo scopo del Configuration Management Lo scopo della gestione della configurazione software è stabilire e mantenere l integrità dei prodotti software in tutto il loro ciclo di vita La gestione della configurazione software comprende: l identificazione della configurazione del software (cioè quali sono i prodotti di software selezionati e le loro descrizioni) in un dato momento il controllo dei cambiamenti il mantenimento dell integrità e della tracciabilità della configurazione per tutto il ciclo di vita del software CM risponde a domande come: Quali sono i componenti del prodotto? Come posso assicurare che non vengano fatti cambiamenti disastrosi? CM si prende cura del cliente (interno o esterno al progetto), che deve avere la sicurezza che la versione del prodotto a lui consegnata possa essere mantenuta correttamente

6 Changes Cambiamenti nei requisiti Dati Altri Documenti Codice Documenti progetto

7 Configuration Item Un Configuration Item (CI) è uno specifico e documentato work product risultante o usato durante il ciclo di vita Un work product è un qualsiasi artifatto tangibile risultante da una attività di sviluppo. Es: Piani di progetto, documentazione test, script di test, codice sorgente, ecc

8 Baseline Una Baseline è un insieme di uno o più Configuration Item il cui contenuto è stato sottoposto a revisione tecnica e accettato, in una fase del ciclo di vita. E la fotografia del progetto in quel determinato istante. Per ogni Baseline va documentato: L evento che ha creato la baseline I CI associati a quella baseline Le modifiche fatte alla baseline dalla creazione in poi Le procedure usate per definire e modificare la baseline i sui CI Differenti tipi di Baseline Functional Allocated Development Product

9 Functional Baseline Descrive quali funzioni eseguirà il sistema ed è la configurazione stabilita dopo la revisione dei requisiti di sistema e la recisione del design di sistema: Insieme iniziale di documenti che specificano le caratteristiche funzionali dei CI, test di sistema richiesti per verificarle, caratteristiche delle insterfacce, design constraints, performance richieste E la prima Baseline che viene costruita (documenti che descrivono le specifiche del sistema) Può essere considerato un Contratto tra il team di sviluppo e il Cliente

10 Allocated Baseline e Development Baseline Allocated Baseline: Documenta quali funzioni il software dal sviluppare eseguirà ed è la configurazione stabilita dopo la revisione dei requirements. Il termine allocated vuole indicare il concetto che i requisiti sono stati allocati dalle specifiche di sistema della funcional baseline Development Baseline: E una baseline interna (le altre sono esterne) Evolve tra la allocated e la product Costruita incrementalmente Incorpora tutti i semilavorati del processo di produzione (documenti di design, codice sorgente, eseguibili, casi di test, ) Diverse baseline di sviluppo in tempi diversi, sempre più complete e stabili

11 Product Baseline E la configurazione stabilita dopo le attività di verifica e validazione a livello sistema che confermano il soddisfacimento dei requisiti (SRS e SDD). E la baseline che documenta in modo completo la versione finale del software. E usata per supportare le versioni rilasciate del prodotto; è il punto di partenza per lo sviluppo delle release successive. Codice sorgente e tutto ciò (documentazione e tool di supporto) che serve per ricostruire il prodotto e manutenere il codice Costituita dopo il test di accettazione del prodotto Costituisce ciò che viene rilasciato al cliente

12 Configuration Control Board Persona o commissione che coordina ed autorizza le modifiche da apportare ad una baseline per cui è competente Effettua le valutazioni dell impatto di cambiamenti (non solo da un punto di vista tecnico ma anche logistico, strategico, economico e organizzazionale) alla baseline L obiettivo è di mantenere una visione globale e valutare l impatto al di la della baseline in questione Più CCB, ognuna competente per una particolare baseline, eventualmente organizzate gerarchicamente Istituite in modo da assegnare precise responsabilità e ridurre il numero di persone da riunire per discutere le possibili soluzioni ad un problema

13 Le attività di CM Configuration Identification Configuration Control Configuration Status Accounting Configurations Audits & Review Interface Control Subcontractor Vendor Control

14 Configuration Identification Attività in cui i software configuration items sono determinati Univocamente identificati e nominati catalogati Descrive come i meccanismi di revisione e rilascio sono usati per porre il sw sotto il controllo di configurazion Due livelli di identificazione Logica: Codice/Nome del documento, modulo, sorgente, Fisica: Nome del file contenente il testo del documento, modulo,

15 Configuration Identification Esempi: Sorgente C++ Identificazione logica: modulo = classe, nome della classe Identificazione fisica (nome del file): file header con dichiarazione: nome della classe. h file con implementazione: stesso nome dell header. Cxx un modulo => 2 file Documento di Specifica Definizione di regole per asseganzione identificatori/nomi <codice autore> - <codice del progetto> - <versione> - <stato> <titolo> - <tipo di doc> - <versione> + <stato> - <codice progetto>

16 Configuration Control Descrive le procedure che sono utilizzate per il controllo del cambiamento della documentazione e del codice conseguente da porre sotto il controllo della configurazione. Descrive le revisioni per le richieste di cambiamento fatte da un organismo di revisione, quale il CCB, della configurazione e include la lista dei componenti di tale commissione e loro eventuali alternative

17 Configuration Control Richieste di modifiche Classificazione richiesta Identificazione Validazione della richiesta Valutazione della richiesta Software change classification Technical Impact Analysis Interface Impact Analysis Schedule Impact Analysis Budget Impact Analysis Approvazione/Non approvazione della modifica Decision (if approved) Implementation Assignment Verification Assignment Release/Installation Assignment Version upadate Implementazione della modifica Check-out Controlled Baseline Change Implementation Implementation testing & verification Implementation approval Check-in Controlled Baseline

Check In & Check Out Check IN Deposita una nuova versione di un CI nel repository Possibile una serializzazione del lavoro Si può decidere se solo uno sviluppatore alla volta può effettuare dei cambiamenti (mettendo un lock al file) oppure più sviluppatori possono lavorare in parallelo e si effettua il merge delle versioni Check OUT preleva una copia di una versione di un modulo da un repository e la deposita nello spazio di lavoro criteri per la selezione della versione (ultima, x.y, data, ) possibilità di porre o meno un lock sulla specifica versione (lock = modifica possibile) Modifica della copia nello spazio di lavoro (isolamento) 18

19 Modello Lock/Modify/Unlock In principio, l unico modello secondo il quale più programmatori accedevano in concorrenza ai diversi file di un progetto era il modello lock/modify/unlock. Secondo questo modello un utente che vuole modificare un file del progetto, prima di tutto lo blocca (lock), impedendo a chiunque altro di modificarlo, dopodichè, quando ha terminato le modifiche lo sblocca (unlock). Questa strategia, per quanto garantisca la massima sicurezza da problemi di manomissione contemporanea involontaria, non ottimizza nel modo migliore le operazioni. Adoperando questo modello, si tende a spezzettare il più possibile un progetto, in modo da ridurre gli impedimenti al lavoro causati dai lock.

20 Modello Copy/Modify/Merge Il modello Copy/Modify/Merge prevede che: Lo sviluppatore A scarica una copia del progetto (working copy o sandbox) dal repositpry centrale; Applica liberamente tutte le modifiche. Nel frattempo altri programmatori (B) potrebbero fare lo stesso; Al termine del suo lavoro il programmatore A aggiorna il progetto sul repository centrale (commit); Altri programmatori potrebbero richiedere aggiornamenti della loro working copy (update) al repository o generare delle ulteriori versioni (commit).

21 Software Configuration Management Versione Stato di un elemento in un istamte di tempo Configurazione Insieme di CI utilizzati per costruire un prodotto Release Una istanza di un sistema distribuita agli utenti esterni

22 Identificazione della Versione Le procedure per l identificazione delle versioni devono definire un modo non ambiguo per identificare le componenti della versione Una tecnica base per la identificazione delle componenti è Numerazione delle versione V1, V1.1, V2, V2.1 ecc Può portare ad errori in quanto i nomi non sono significativi Meglio utilizzare un a struttura ad albero piuttosto che una sequenza

23 Identificazione multi-livello Identificazione gerarchica di Configuration Item Un esempio: la terminologia corretta definita è obbligatoria

24 Revisione e Variazione Revisione la versione M di un modulo è una revisione di M se M sostituisce M in tutte le configurazioni cui M appartiene a partire dal momento in cui M risulta disponibile (es. correzione di errori) Variazione la versione M è una variazione di M se M è un alternativa ad M in situazioni particolari (es. supporto periferiche diverse) Due configurazioni differiscono se contengono elementi diversi Due configurazioni differiscono anche se contengono due versioni più o meno diverse dello stesso modulo (contenuto diverso) Lo stesso modulo può far parte di più configurazioni Versioni delle configurazioni

25 Gestione dello stato Viene fornita a tutti una descrizione costantemente aggiornata dello stato degli artefatti su cui si sta lavorando Ogni azione sui Configuration Item deve archiviare il nuovo stato degli item così che tutti ne siano avvisati (in tempo reale, ad esempio attraverso la pagina Web del progetto) Vengono generati report dello stato della configurazione del progetto CM consegna periodicamente il Configuration Report che fornisce una panoramica dello stato della configurazione del progetto

26 Configuration Audits & Reviews Configuration Audits & Reviews Conduzione di riunioni formali in cui il sistema, o sue parti, sotto SWCM è controllato, verificato e validato rispetto alle attività di SWCM Configuration Status Accounting Processo per esaminare il sistema di SWCM ed i suoi contenuti, inclusa la cronistoria dei cambiamenti Informazioni minime da registrare: La versione iniziale di un SCI Lo stato di tutte le modifiche richieste per ogni SCI Lo stato di implementazione di tutte le modifiche approvate per gli SCI

27 Tool di Configuration Management Due tipologie principali: Workbench aperti Si tratta di strumenti stand-alone che si occupano di uno degli aspetti della gestione delle versioni e delle release Spesso si tratta di strumenti open source Strumenti di bug-tracking (es.: Bugzilla) Strumenti di gestione delle versioni (es. CVS) Strumenti per il build (es. make, ant) Workbench integrati Si tratta di strumenti che vanno a integrarsi con gli ambienti di sviluppo in modo da supportare la gestione di versioni e release contestualmente allo sviluppo Rational Clear Case e Clear Quest Microsoft Source Safe Strumenti integrati in NetBeans, Eclipse, Dev

28 CVS: Concurrent Version System Sistema di controllo delle versioni di un progetto legato alla produzione e alla modifica di file. In pratica, permette a un gruppo di persone di lavorare simultaneamente sullo stesso gruppo di file (generalmente si tratta di sorgenti di un programma), mantenendo il controllo dell'evoluzione delle modifiche che vengono apportate. Per attuare questo obiettivo, il sistema CVS mantiene un deposito centrale (repository) dal quale i collaboratori di un progetto possono ottenere una copia di lavoro. I collaboratori modificano i file della loro copia di lavoro e sottopongono le loro modifiche al sistema CVS che le integra nel deposito. ll compito di un sistema CVS non si limita a questo; per esempio è sempre possibile ricostruire la storia delle modifiche apportate a un gruppo di file, oltre a essere anche possibile ottenere una copia che faccia riferimento a una versione passata di quel lavoro. http://www.nongnu.org/cvs/

29 CVS: Concurrent Version System Il sistema CVS è un software, presente per diversi sistemi operativi, che consente di gestire a linea di comando le principali operazioni previste dai modelli lock/modify/unlock e copy/modify/merge. Il lato server gestisce il repository, contenente sia tutti I file da gestire che tutte le informazioni sulle versioni. In alternativa il deposito potrebbe anche trovarsi sulla macchina client. Il lato client consente di effettuare tutte le operazioni riguardanti la copia locale (sandbox) del progetto.

30 CVS- Gestione Conflitti Nel caso in cui due programmatori modificano lo stesso file, il sistema CVS può fondere (merge) le due versioni, sovrapponendo le modifiche, allorchè si riferiscano a linee di codice diverse. Se invece ci sono modifiche alle stesse righe di codice si verifica un conflitto. La soluzione del conflitto è in questo caso demandata ai singoli programmatori: la versione unificata che viene generata diventa la nuova versione di riferimento. In alternativa si potrebbe scegliere di mantenere entrambe le versioni come alternative, generando un branch.

31 CVS- Operazioni Ogni persona coinvolta nel progetto, ha una copia locale dei file (sandbox). Chi avvia il progetto crea per la prima volta il repository (Make new module), indicando anche quali directory dovranno essere gestite. Successivamente un qualsiasi collaboratore può aggiungere nuovi file/directory al CVS (add). Un collaboratore che voglia inserirsi nel CVS dovrà per prima cosa effettuare il Checkout per prelevare dal repository le versioni più recenti di ogni file.

32 CVS- Operazioni Sui file presenti nella propria sandbox si possono effettuare le seguenti operazioni: Checkout (o update): preleva una copia aggiornata dal repository; Se copia locale e copia del repository non coincidono viene segnalato un conflict; Dopo il checkout, la copia locale è in stato di lock e non può essere modificata. Edit: richiede il permesso di scrivere sul file locale Se il file è già in stato di edit da parte di qualche altro utente, viene segnalato il rischio di modifiche concorrenti (nel caso di file binari o di politica di lock/modify/unlock viene impedito l accesso). Commit: rende pubbliche a tutti le proprie modifiche al file Le modifiche vengono propagate al repository. Il repository incamera il file ricevuto come nuova versione; le versioni precedenti rimangono reperibili.

33 CVS- Operazioni Gestione conflitti Se due utenti vanno a modificare in concorrenza lo stesso file, e il primo di essi effettua il commit, verrà impedito al secondo di fare lo stesso In questo caso si consiglia al secondo di fare un update: il sistema nota la differenza tra la versione sul repository e quella locale e popone alcune soluzioni semiautomatiche (merge) per la soluzione dei conflitti. Al termine, il secondo utente avrà una versione locale che tiene conto sia delle proprie modifiche che di quelle degli altri utenti. Di questa versione potrà essere fatto il commit, ottenendo quindi una versione successiva. Generazione branch Genera un ramo alternativo nella storia del file (se ne terrà conto nella diversa numerazione: ad esempio dopo 1.2 ci sarà 1.2.1 anzichè 1.3) Sono disponibili funzionalità per vedere graficamente tutta la storia delle versioni del files. Fusione tra versioni diverse. Eliminazione copia locale. Eliminazione originale (da operare direttamente sul repository).

34 CVS- Tag Ogni versione può essere annotata e ad essa possono essere aggiunte delle informazioni dette tag. I tag sono particolarmente utili per distinguere tra loro le release di un software

35 TortoiseCVS TortoiseCVS è un front-end client che rende l uso di CVS pù semplice, più intuitivo e più produttivo. Si interfaccia direttamente con Windows Explorer. One dei maggiori vantaggi è quello di mostrare, per ogni comando dato da interfaccia, le corrispondenti operazioni a linea di comando effettuate. TortoiseCVS non include un CVS Server ma supporta la creazione di repository CVS locali. Tortoise CVS supporta anche una serie di operazioni di più alto livello Gestione dei conflitti Cronologia delle versioni Grafo delle versioni Creazione di patch Scelta delle politiche di accesso Operazioni in batch http://www.tortoisecvs.org/

36 SubVersion Subversion è un sistema di controllo versione progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS Caratteristiche principali: Comprende gran parte delle caratteristiche di CVS. Novità rispetto a CVS Le directory, i cambi di nome, e i metadati dei file sono sotto controllo versione. Il controllo di versione avviene anche sulle directory Un file che era stato precedentemente rimossopuò essere aggiunto nuovamente I file binari sono gestiti efficientemente Il protocollo client/server invia solo le differenze in entrambe le direzioni I commit sono atomici Diverse modalità di accesso al repository

37 SubVersion Sito Ufficiale Subversion: http://subversion.apache.org/ Sito Italiano Subversion: http://www.subversionitalia.it/ Al seguente link può essere scaricato l ebook Controllo di versione con SubVersion http://svnbook.red-bean.com/index.it.html Esiste TortoiseSVN, analoga a TortoiseCVS che abilita le funzionalità SVN direttamente da Windows Explorer http://tortoisesvn.tigris.org/

38 Best Practice I [Merge] vanno fatti sempre in locale, poi si spedisce il risultato sul server Eseguire [Update] di frequente e integrare spesso le modifiche sul server Eseguire il [Commit] solo di codice perfettamente compilabile Testare a fondo prima del commit