Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Довідка Subversion Assembla.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.91 Mб
Скачать

Автор

Ревізія

Нотатки

Петро Сасник

0.1

Створено початкову версію

Contents

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

2. Базові поняття системи Subversion. 4

Рекомендована структура папок 5

3. Робота в системі Subversion 5

Налаштування Assembla 5

Адреса репозитарію 11

Встановлення клієнта Tortoise SVN 12

Налаштування клієнта Tortoise SVN 14

Робота з репозитарієм 15

Додавання файлів та папок 15

Отримання останніх змін з сервера 18

Відправити зміни в існуючий файл на сервер 18

Що потрібно зберігати в Subversion, а що ні? 20

4. Додаткова інформація: 20

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

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

Основними функціями систем контролю версій вихідного коду програм(SCM) iє:

- Надійне збереження всієї історії змін коду програм

- Можливість документування змін в системі

- Можливість отримання миттєво знімка(snapshot) системи на певний момент часу в минулому

Додатковими, але вже стандартними функціями є:

  • Можливість пошуку та навігації по історії, а також отримання різниці між двома чи кількома версіями

  • Додавання міток

Серед систем контролю версій вихідного коду програм виділяють два класи:

  • Централізовані системи(cvs, subversion, Perforce, etc.)

  • Розподілені системи(DVCS) (Git, Mercurial, etc.)

Як слідує з назви централізовані системи, вимагають наявності центрального вузла, сервера який зазвичай зберігає історію версій коду та синхронізує роботу клієнтів.

В децентралізованих системах такого авторизованого центру зазвичай немає, всі клієнти є рівними, тому в таких системах дещо складнішою є синхронізація змін між ними.

Для виконання лабораторних робіт було обрано систему контролю вихідним кодом Subversion як один з кращих зразків централізованої системи. В якості центрального вузла сервера який надаватимиме нам доступ до Subversion ми обрали сервіс компанії Assembla.

  1. Базові поняття системи Subversion.

При роботі з системою контролю версій Subversion потрібно засвоїти ряд базових понять(для більш грунтовного ознайомлення зверніться до більше детального керівництва).

Отже які проблему намагається вирішити Subversion:

  • Колись в минулому я реалізував функцію НамалюватиТрикутник, але з певних причин мені довелося її видалити, зараз я хочу повернути її назад.

  • Я та мій товариш працюємо над спільним проектом з тими самими фалами, але на різних комп’ютерах, як нам гарантувати, що наші зміни сумісні і ми не затремо зміи один одного?

Subversion – вирішує ці проблеми ввівши центральне сховище, яке є спеціалізованою базою даних яка зберігає інформацію в вигляді дерева папок та файлів. Клієнти підключаються до сховища і читають та записують ці файли. Записуючи дані клієнт робить їх доступними для інших читаючи отримує інформацію від інших клієнтів. Відмінність від звичайної файлової системи полягає в тому що сховище крім надавання в типовому випадку останньої версії даних може повернути клієнту будь-яку збережену версію в минулому, а також всю історію змін(хто міняв, що міняв, в які файли було внесено зміни).

Subversion – дозволяє одночасне внесення змін в ті самі файли. Для цього клієнт отримує з сховища і створює локальне відображення файлів і папок сховища – робочу копію(working copy). Саме з робочою копією ми працюватимемо і вноситимемо зміни. Процес отримання робочої копії з сервера називається checkout. Коли ми завершуємо роботу ми відправляємо зміни назад на сервер commit. Якщо я з моїм колегою працюємо над одним документом ми можемо одночасно внести різні зміни. При відправці файлу на сервер(comit) той хто відправляє зміни останнім може отримати конфлікт(conflict), наприклад якщо зміни були внесені в тому самому файлі в тих самих рядках. Subversion намагається автоматично об’єднати зміни якщо вони знаходяться в різних рядках. Якщо зміни знаходяться в тому самому рядку в вас є можливість виправити конфлікти(resolve conflicts):

  1. Прийняти чужі зміни (сервера) і відкинути ваші локальні зміни (accept theirs)

  2. Прийняти ваші зміни і відкинути чужі(сервера) зміни (accept mine)

  3. Редагувати зміни вручну(ви відкриваєте змінені файли в редакторі де вносите потрібні зміни), після чого позначаєте файл як виправлений(resolved).

З деякими файлами в бінарному форматі даних неможливо працювати за такої моделі, оскільки Subversion не може автоматично об’єднати зміни з різних клінтів. В такому випадку використовують модель з блокуванням/редагування/розблокування (model lock/edit/unlock). В такому випадку перед редагуванням ми позначаємо файл заблокованим(locked) після цього в даний файл ніхто крім вас не зможе вносити змін поки ви не розблокуєте його(unlock).