che cosa si intende per Software Configuration Management? | Il Software Configuration Management è l’insieme di pratiche che hanno l’obiettivo di rendere sistematico il processo di sviluppo, tenendo traccia dei cambiamenti in modo che il prodotto sia in ogni instante in uno stato (configurazione) ben definito. |
Il mondo open source preferisce un approccio decentralizzato al version control. Perché? | - è possibile lavorare offline;
- è molto più veloce, perché la rete non fa più da bottleneck;
- supporta diversi modi di lavorare:
--> simil centralizzato: un repository viene considerato “di riferimento”;
--> due peer che collaborano direttamente;
--> gerarchico a più livelli (kernel Linux). |
quali sono i soggetti del versioning ? | Gli “oggetti” di cui si controlla l’evoluzione sono detti configuration item o manufatti; generalmente sono file. Se si cambia nome a un file è come eliminarne uno e partire da zero con uno nuovo. Originariamente i tool tracciavano i file indipendentemente, senza un senso logico (una configurazione) comune. |
quali modelli di accesso esistono per un repository con accesso concorrenziale? | - modello ‘pessimistico’ (RCS): prevedo il possibile conflitto assicurandomi che chi lavora sia l’unico con l’accesso in scrittura. Funziona solo in ambienti centralizzati, nell’open source non può funzionare.
- modello ‘ottimistico’ (CVS): il sistema si disinteressa del problema e fornisce supporto per le attività di merge di change-set paralleli potenzialmente conflittuali. |