Покоління систем контролюверсій
1
• Паралельна розробка обмежувалась блокуваннями (lock) файлів.
• Лише одна людина могла працювати над файлом в будь-який момент часу.
• Приклади: RCS, SCCS
2
• Набагато поблажливіші до одночасних модифікацій. Одна примітка:
• Користувачі повинні об’єднати свої зміни з іншими перед їхньою фіксацією
• Приклади: CVS, SourceSafe, Subversion (SVN), Team Foundation Server (TFS)
3
• Об’єднання (merge) та фіксація (commit) відокремлені
• Приклади: Bazaar, Git, Mercurial
Apache Subversion (SVN)
•Кожен коміт – атомарна транзакція
• Зберігається повна історія змін файлів та каталогів
• Підтримка розгалужень (branching)
• Створення нових гілок – дешева по ресурсам
операція
• Однаково ефективна робота як з текстовими, так і з
бінарними файлами
• Підтримка блокування (locking) файлів
• Вага репозиторію пропорційна вазі змін, а не вазі
самих даних
• Підтримка автоматичного злиття
• Підтримка тегів
Git
• Успадковує багатоможливостей централізо-
ваних СКВ
• Зберігає дані у вигляді знімків, а не змін до
файлів
• Більшість операцій локальні (=швидкі), можна
переглядати історію та вносити зміни до свого
локального репозиторію без з’єднання з сервером
• Вбудована на нижчому рівні підтримка цілісності
• Три основні стани файлів в Git-репозиторії:
committed, modified, staged
• Наявність команд на всі випадки життя
Knowledge is havingthe right answer.
Intelligence is asking the right question.
- Anonymous
“
22.
Рекомендована література
1. EricSink «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»