Конспекти лекцій та Лабораторні роботи з дисципліни "Проєктний практикум" для IV курсу спеціальності 121 "Інженерія програмного забезпечення" ОКР "Фаховий молодший бакалавр" Херсонського політехнічного фахового коледжу Державного університету "Одеська політехніка"
Система керування версіями (СКВ, англ. source code management, SCM, VCS) — програмний інструмент для керування версіями одиниці інформації: початкового коду програми, скрипту, веб-сторінки, вебсайту, 3D-моделі, текстового документу тощо.
Система керування версіями — інструмент, який дозволяє одночасно, не заважаючи один одному, проводити роботу над груповими проєктами.
Системи керування версіями зазвичай використовуються при розробці програмного забезпечення для відстеження, документування та контролю над поступовими змінами в електронних документах: у сирцевому коді застосунків, кресленнях, електронних моделях та інших документах, над змінами яких одночасно працюють декілька людей.
Кожна версія позначається унікальною цифрою чи літерою, зміни документу занотовуються. Зазвичай також зберігаються дані про автора зробленої зміни та її час.
Інструменти для контролю версій входять до складу багатьох інтегрованих середовищ розробки.
Існують два основні типи систем керування версіями: з централізованим сховищем та розподіленим.
Система збереження історії редагувань статей, що застосовується у Вікіпедії є прикладом системи керування версіями.
Відомий метод при застосуванні до даної задачі може виглядати наступним чином: будемо називати файли за шаблоном filename_{version}, можливо з додаванням часу створення або зміни.
Даний спосіб є дуже простим, але він схильний до різних помилок: можна випадково змінити не той файл, можна скопіювати не з тієї директорії (адже саме так переносяться файли в цій моделі).
Покоління розвитку СКВ
Покоління | Мережна архітектура | Обробка файлу | Конкурентність | Приклади |
---|---|---|---|---|
Перше | Локальна | Один файл за раз | Блокування файлу | RCS, SCCS |
Друге | Централізована | Багатофайлова | Злиття до фіксації | CVS, SourceSafe, Subversion, Team Foundation Server |
Третє | Розподілена | Набори змін | Фіксація до злиття | Bazaar, Git, Mercurial |
Сорокарічна історія інструментів контролю версій показує постійний рух до більшої паралельності роботи.