Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Кафедра АСУ
Лабораторна робота №2
з дисципліни: «Управління ІТ-проектами»
на тему: «Системи управління версіями»
Мета роботи: ознайомитись з сучасними системами управління версіями; навчитися працювати з сховищем, оволодіти можливостями злиття копій.
ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ
Створити проект локально.
Завантажити створений проект на svn-сервер (в якості svn-сервера можна обрати безплатні онлайн-рішення: assembla, RiouxSVN і ін.).
Викачати (стягнути) локальну робочу копію проетку.
Ознайомитися з можливостями оновлення, внесення і аналізу змін робочої копії.
Навчитися вирішувати конфліктні ситуації (при злитті з чужими змінами).
Продемонструвати навити роботи з різними версіями проекту (гілками).
Здобути навики щодо аналізу історій (аналіз локальних змін, порівняння робочої копії з репозиторієм).
Короткі теоретичні відомості
Що таке система управління версіями і навіщо вони потрібні? Система управління версіями (Version Control System, VCS) – програмне забезпечення для полегшення роботи зі змінною інформацією. Система управління версіями дозволяє зберігати декілька версій одного і того ж документа, при необхідності повертатися до ранніх версій, визначати, хто і коли зробив ту чи іншу змінну, і багато іншого.
У своїй напростішій формі, це те, що багато людей роблять вручну: кожний раз, коли розробники змінюють файл, зберігаючи його під новим іменем, яке містить номер версії документу.
Ручне управління декількома версіями для одного файлу – задача з можливістю помилок, хоча програмні засоби для автоматизації цього процесу давно вже доступні. Перші автоматизовані засоби контролю цього процесу давно вже доступні. Вони були створені, щоб допомогти одній людина управляти версіями одного файлу. За останні десятиліття, кількість інструментів контролю версій значно зросла. Тепер вони упраляють версіями багатьох файлів, і допомагають декільком людям працювати разом. Завдяки кращим засобам контролю версій тисячі людей можуть працювати над спільними проектами, що містять сотні тисяч файлів.
Види систем управління версіями:
1. Локальні системи управління версіями. Багато людей надають перевагу контролювати версії – банальним копіюванням файлів в інший каталог. Такий підхід дуже розпоширений, оскільки він простий, але він і частіше дає збої. Дуже просто забути, що ти не в тому каталозі, і випадково змінити не той файл, або скопіювати файли не туди, куди хотів, і затерти потрібні файли. Щоб вирішити цю проблему, програмісти розробили локальні системи управління версіями з простою базою, в якій зберігалися всі зміни потрібних файлів.
2. Централізовані системи управління версіями (клієнт-серверні). Наступною основною проблемою виявилась необхідність співпрацювати з розробниками за іншими комп’ютерами. Щоб її вирішити, були створені централізовані системи управління версіями. Централізована - система, дані в якій зберігаються в єдиному «серверному» сховищі. Весь обмін файлами відбувається з використанням центрального сервера.
3. Децентралізовані системи управління версіями (розподілені). Децентралізована – це система, яка використовує замість моделі клієнт-сервер, розподілену модель зберігання файлів (рис. 3). Така система не потребує сервера, адже всі файли знаходяться на кожному з комп’ютерів.
Subversion. Subversion (SVN) це безкоштовна система управління версіями з відкритим вихідним кодом. Subversion дозволяє управляти файлами і папками в часі. Дерево файлів поміщається в центральне сховище, яке схоже на звичайний сервер файлів з тою відмінністю, що запам’ятовує кожну зміну, внесену у файл чи каталог. Це дозволяє відновити ранні версії даних, дослідити історію зміни даних.
Хід роботи
Створення віртуальної папки на копмпютері (Checkout)
/
Дані на сервері
/
Внесення змін у репозиторій:
/
Оновлення локальної копії з репозиторію:
/
Перегляд історії ревізій:
/
Перегляд стану репозиторію:
/
Аналіз внесених змін до локальної копії:
/
Створення патчів
/
Аналіз змін
/
Вирішення конфліктів:
/
/
Аналіз файлу, порівняння поточного стану з попередньою ревізією
Створення вітки:
/
Злиття віток:
/
Висновок: на лабораторній роботі навчився користуватись централізованою системою управління версіями. Для цього використав середовище TortoiseSVN і сервер на сайті https://app.cloudforge.com де була можливість взяти 30 пробних днів. Ознайомився з загальними принципами роботи такої системи, створивши власну групу на сервері і виконав наступний ряд операцій: завантаження даних на сервер, обновлення даних, видалення і ряд інших операцій які дозволяє робити середовище TortoiseSVN.