Selama beberapa tahun terakhir saya telah bekerja dengan beberapa sistem kontrol versi yang berbeda. Bagi saya, salah satu perbedaan mendasar di antara mereka adalah apakah mereka versi file secara individual (masing-masing file memiliki penomoran versi dan sejarah yang terpisah) atau repositori secara keseluruhan ("komit" atau versi mewakili snapshot dari seluruh repositori) .
Beberapa sistem kontrol versi "per-file":
- CVS
- ClearCase
- SourceSafe Visual
Beberapa sistem kontrol versi "seluruh repositori":
- SVN
- Git
- Lincah
Dalam pengalaman saya, sistem kontrol versi per file hanya menyebabkan masalah, dan memerlukan lebih banyak konfigurasi dan pemeliharaan untuk digunakan dengan benar (misalnya, "spesifikasi konfigurasi" di ClearCase). Saya memiliki banyak contoh rekan kerja yang mengubah file yang tidak terkait dan melanggar apa yang idealnya merupakan jalur pengembangan yang terisolasi.
Apa keuntungan dari sistem kontrol versi per file ini? Masalah apa yang dimiliki sistem kontrol versi "seluruh repositori" yang tidak dimiliki sistem kontrol versi per file?