Negli ultimi anni ho lavorato con diversi sistemi di controllo delle versioni. Per me, una delle differenze fondamentali tra loro è stata se i loro file di versione singolarmente (ogni file ha la sua numerazione e cronologia delle versioni separate) o il repository nel suo insieme (un "commit" o versione rappresenta un'istantanea dell'intero repository) .
Alcuni sistemi di controllo della versione "per file":
- CVS
- ClearCase
- Visual SourceSafe
Alcuni sistemi di controllo della versione "intero repository":
- SVN
- Idiota
- mutevole
Nella mia esperienza, i sistemi di controllo della versione per file hanno solo causato problemi e richiedono molta più configurazione e manutenzione per essere utilizzati correttamente (ad esempio, "specifiche di configurazione" in ClearCase). Ho avuto molti casi in cui un collega ha cambiato un file non correlato e interrotto quella che sarebbe idealmente una linea isolata di sviluppo.
Quali sono i vantaggi di questi sistemi di controllo della versione per file? Quali problemi hanno i sistemi di controllo della versione "intero repository" che i sistemi di controllo della versione per file non hanno?