7. Покоління систем контролю версій
1
• Паралельна розробка обмежувалась блокуваннями (lock) файлів.
• Лише одна людина могла працювати над файлом в будь-який момент часу.
• Приклади: RCS, SCCS
2
• Набагато поблажливіші до одночасних модифікацій. Одна примітка:
• Користувачі повинні об’єднати свої зміни з іншими перед їхньою фіксацією
• Приклади: CVS, SourceSafe, Subversion (SVN), Team Foundation Server (TFS)
3
• Об’єднання (merge) та фіксація (commit) відокремлені
• Приклади: Bazaar, Git, Mercurial
9. Apache Subversion (SVN)
• Кожен коміт – атомарна транзакція
• Зберігається повна історія змін файлів та каталогів
• Підтримка розгалужень (branching)
• Створення нових гілок – дешева по ресурсам
операція
• Однаково ефективна робота як з текстовими, так і з
бінарними файлами
• Підтримка блокування (locking) файлів
• Вага репозиторію пропорційна вазі змін, а не вазі
самих даних
• Підтримка автоматичного злиття
• Підтримка тегів
15. Git
• Успадковує багато можливостей централізо-
ваних СКВ
• Зберігає дані у вигляді знімків, а не змін до
файлів
• Більшість операцій локальні (=швидкі), можна
переглядати історію та вносити зміни до свого
локального репозиторію без з’єднання з сервером
• Вбудована на нижчому рівні підтримка цілісності
• Три основні стани файлів в Git-репозиторії:
committed, modified, staged
• Наявність команд на всі випадки життя
21. Knowledge is having the right answer.
Intelligence is asking the right question.
- Anonymous
“
22. Рекомендована література
1. Eric Sink «Version Control by Example» («The Hitchiker's
Guide to Distributed Version Control»)
2. Scott Chacon and Ben Straub «Pro Git»
3. Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
«Version Control with Subversion»