За останні кілька років я працював з декількома різними системами управління версіями. Для мене однією з принципових відмінностей між ними є те, чи вони файли версій окремо (кожен файл має свою окрему нумерацію версій та історію) або сховище в цілому ("фіксація" або версія являє собою знімок всього сховища) .
Деякі системи контролю версій "за файлом":
- CVS
- ClearCase
- Visual SourceSafe
Деякі системи управління версіями "цілий репозиторій":
- SVN
- Git
- Меркуріал
На мій досвід, системи управління версіями файлів лише призвели до проблем і вимагають набагато більше конфігурації та обслуговування для правильного використання (наприклад, "налаштування специфікацій" у ClearCase). У мене було чимало випадків, коли колега змінював незв’язаний файл і ламав те, що в ідеалі було б ізольованою лінією розвитку.
Які переваги цих систем управління файлами версій? Які проблеми виникають у системах керування версіями "цілого репозиторію", у яких системи управління версіями файлів не мають?