Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / SVN / ЛБ_Tortoise_Метод.Указ.docx
Скачиваний:
18
Добавлен:
17.06.2023
Размер:
3.63 Mб
Скачать

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 контрольной неделе и т.д.), сохраняя несколько версий приложения во время процесса разработки.

По окончанию работы бригады проверьте работоспособность разработанного проекта.

46