450 Проєктний практикум

Конспекти лекцій та Лабораторні роботи з дисципліни "Проєктний практикум" для IV курсу спеціальності 121 "Інженерія програмного забезпечення" ОКР "Фаховий молодший бакалавр" Херсонського політехнічного фахового коледжу Державного університету "Одеська політехніка"

View the Project on GitHub solidol/nmk-projpract

Перелік лекцій

Вступ. Розвиток систем керування версіями

Система керування версіями

Система керування версіями (СКВ, англ. source code management, SCM, VCS) — програмний інструмент для керування версіями одиниці інформації: початкового коду програми, скрипту, веб-сторінки, вебсайту, 3D-моделі, текстового документу тощо.

Система керування версіями — інструмент, який дозволяє одночасно, не заважаючи один одному, проводити роботу над груповими проєктами.

Системи керування версіями зазвичай використовуються при розробці програмного забезпечення для відстеження, документування та контролю над поступовими змінами в електронних документах: у сирцевому коді застосунків, кресленнях, електронних моделях та інших документах, над змінами яких одночасно працюють декілька людей.

Кожна версія позначається унікальною цифрою чи літерою, зміни документу занотовуються. Зазвичай також зберігаються дані про автора зробленої зміни та її час.

Інструменти для контролю версій входять до складу багатьох інтегрованих середовищ розробки.

Існують два основні типи систем керування версіями: з централізованим сховищем та розподіленим.

Система збереження історії редагувань статей, що застосовується у Вікіпедії є прикладом системи керування версіями.

Copy-paste

Відомий метод при застосуванні до даної задачі може виглядати наступним чином: будемо називати файли за шаблоном filename_{version}, можливо з додаванням часу створення або зміни.

Даний спосіб є дуже простим, але він схильний до різних помилок: можна випадково змінити не той файл, можна скопіювати не з тієї директорії (адже саме так переносяться файли в цій моделі).

Для чого потрібні VCS?

Термінологія VCS

Історія розвитку

Дерево розвитку СКВ

Покоління розвитку СКВ

Покоління Мережна архітектура Обробка файлу Конкурентність Приклади
Перше Локальна Один файл за раз Блокування файлу RCS, SCCS
Друге Централізована Багатофайлова Злиття до фіксації CVS, SourceSafe, Subversion, Team Foundation Server
Третє Розподілена Набори змін Фіксація до злиття Bazaar, Git, Mercurial

Сорокарічна історія інструментів контролю версій показує постійний рух до більшої паралельності роботи.