- •Система контроля версий Tortoise svn
- •2.1 Теоретическое введение 8
- •3.1 Теоретическое введение 33
- •Лабораторная работа №1. Установка и настройка распределительной системы контроля версий Tortoise svn. Основные принципы работы.
- •1.1 Теоретическое введение
- •1.2 Установка и настройка серверной части
- •1.3 Установка и настройка клиентской части
- •Лабораторная работа №2. Работа в Tortoise svn с простыми проектами.
- •2.1 Теоретическое введение
- •2.2 Основные операции при работе с Tortoise svn
- •2.3 Браузер репозитория
- •2.4 Создание проекта
- •2.5 Создание рабочей копии
- •2.6 Добавление файлов в рабочую копию
- •2.7 Синхронизация рабочей копии с репозиторием (Теория)
- •Во 2 лабораторной работе Вы работаете только с папкой trunk (ствол), никаких ответвлений (Branches) здесь не используется!!
- •Когда создаете рабочую копию, рабочие копии всех членов бригады должны быть привязаны к одной и той же папке в хранилище.
- •2.8 Изменение и откат файлов
- •2.9 Переименование файлов
- •2.10 Перемещение файлов
- •2.11 Разрешение конфликтов
- •2.12 Использование конкретного номера ревизии файлов и папок.
- •Лабораторная работа №3. Работа в Tortoise svn с масштабными программными проектами.
- •3.1 Теоретическое введение
- •Ic (главное меню приложения)
- •3.2 Работа с ветвлениями
- •3.3 Создание веток и меток
- •3. 4 Важное о ветках
- •3.5 Слияние веток
3. 4 Важное о ветках
Ответвление делается не от отдельного файла, а от папки.
Выбираем папку Trunk, делаем правой кнопкой мыши от неё ответвление командой Ответвление/Метка. В диалоговом окне настройки ответвления указываем путь к папке ветки Branch и вручную после знака слеш “/” придумываем и дописываем название своей папки (рисунок 3.5).
Рисунок 3.5 – Настройка ответвления
Важное замечание! Не забывайте оставлять комментарии.
Рисунок 3.6 – Оставьте комментарий!
Важно! После всех произведенных операций обновите рабочую папку!
Теперь вам необходимо работать в ваших рабочих папках, которые вы создали в разделе Branch.
3.5 Слияние веток
СЛУЧАЙ 1
Пусть Петя разрабатывает форму для справочника в Delphi (Unit1), а Вася разрабатывает форму для отчета (Unit 3,4). При этом Вася работает с веткой (Branch), а Петя ведет разработку в стволе (Trunk). На рисунке 3.7 представлено начальное состояние репозитория. На рисунках 3.8 и 3. 9 показано, как ведут разработки Петя и Вася.
Рисунок 3.7 – Начальное состояние репозитория
Рисунок 3.8 - Разработка, которую ведет Петя
Unit 1 (Форма является отображением таблицы «Сотрудники» из БД)
Рисунок 3.9 – Разработка, которую ведет Вася
Unit 3 (Форма является отображением результатов отчета)
Unit 4 (дополнительная форма к отчету для задания пользователем дат формирования отчета)
Теперь им необходимо слить свои разработки, чтобы получился полноценный работоспособный проект.
Перед слиянием Вася и Петя фиксируют изменения в репозитории. Вася сообщает Пете, что закончил тестирование новых функций проекта, для которого он сделал ветку. Петя, который работает в основной ветке разработки Trunk, решает сделать слияние веток. SVN предлагает два возможных сценария слияния веток:
1. Слияние диапазона ревизий - этот сценарий работает следующим образом. SVN берет начальное и конечное состояние ветки В, вычисляет последовательные изменения в файлах этой ветки и последовательно применяет эти изменения на файлы ветки А. Если эти изменения вызовут конфликт, то его нужно будет разрешить, в противном случае произойдет слияние файлов.
2. Слияние 2х различных деревьев - самый простой и в то же время опасный сценарий слияния. Данный вид слияния работает следующим образом. SVN берет текущее состояние веток А и В, вычисляет какие файлы нужно изменить для того что бы из А получить В, делает эту замену в рабочей копии через механизм Delete/Copy. В этом случае не возникает никаких конфликтов, но если в А были какие либо изменения то они пропадут.
В нашем случае Петя выбирает первый вариант (рисунок 3.10-3.11).
Рисунок 3.10 – Слияние диапазона ревизий
Рисунок 3.11 – Сообщение системы
В результате папка Пети после слияния выглядит следующим образом (рисунок 3.12). Как Вы видите, у него появились разработки Васи.
Рисунок 3.12 – Папка Пети после слияния
После Петя фиксирует изменения в репозитории и обязательно комментирует свои действия (рисунок 3.13).
Рисунок 3.13 – Фиксация результатов
Всё, слияние ветки с основной веткой разработки выполнено.
СЛУЧАЙ 2.
Если оба наших разработчика Петя и Вася работают над одними и теми же файлами, но каждый в своих папках, слияние их рабочих копий со стволом будет производиться с использованием процедуры «Слияние двух различных деревьев» и последующим разрешением конфликтов. Слияние ветви обратно со стволом производится из рабочей папки, подключенной к стволу, причем в мастере слияний в разделе «ИЗ», мы указываем URL ствола как начальной точки, от которой будут вычисляться изменения, а в разделе «В», указываем URL ветви, изменения которой мы хотим перенести. Интерфейс матера слияний представлен на рисунке 3.14.
Рисунок 3.14 – Слияние двух различных деревьев
Задание для самостоятельной работы:
В соответствии с предметной областью определенной преподавателем, разрабатывается информационная система (база данных в среде Access, а клиентское приложение в Delphi) В клиентском приложении необходимо разработать главную форму программы, главное меню (содержит пункты файлы и справочники). После этого ИС и Проект (вместе с соответствующими формами) загружаются в папку Trunk хранилища. Не забудьте обновить рабочие папки и убедится, что в вашей рабочей копии появились все данные.
Каждый человек в бригаде разрабатывает одну подчиненную форму для одного справочника или отчета и устанавливает вывод данных этого справочника (См. лабораторную работу 3).
Обеспечьте возможность проверки преподавателем неполнофункционального работающего приложения (например, на 1 контрольной неделе, 2 контрольной неделе и т.д.), сохраняя несколько версий приложения во время процесса разработки.
По окончанию работы бригады проверьте работоспособность разработанного проекта.