- •Система контроля версий 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 Слияние веток
Ic (главное меню приложения)
Unit 2 (Форма Дата Модуль, которая отвечает за связи БД и приложения)
Исходные данные (находятся в стволе)
Внимание!
Не забудьте, что из результатов предыдущих лабораторных работ, у вас должно быть сделано следующее:
1.Установлен сервер на одном компьютере и клиентское приложение у каждого студента на компьютере.
2.Создан репозиторий для каждой бригады на серверном компьютере и назван номером бригады.
3.Выбрана тема реферата для самостоятельного задания, выполнен реферат и презентация к нему.
4.Реферат и презентация должны быть добавлены в проект, все должно быть работоспособно.
Помните, что Вы работаете только на своем клиентском компьютере в рабочей папке, а на серверном компьютере Вы только храните конечные данные!
3.2 Работа с ветвлениями
При работе над проектом, основное внимание уделяется основному направлению разработки (trunk). Т.е. это текущее состояние проекта. Папки и файлы из trunk используются для отладки и тестирования проекта по месту.
Часто возникают ситуации, когда нужно внести две и более копии одного документа или проекта, отличающиеся между собой деталями. В этом случае если в проекте будет найдена общая ошибка в любой из копий, она потребует исправления во всех копиях.
Также часто возникают ситуации, когда при работе над проектом, появляется мысль, реализация и проверка которой займет больше чем день. В этом случае работа в основной ветке может привести к получению нерабочего проекта в ней или к созданию помех коллегам, которые работают вместе с вами над проектом.
Основная идея ветвления - это создание направления разработки (ветки), которое существует независимо от другого направления, но имеет с ним общую историю. В SVN есть команды, которые помогают сопровождать параллельные ветки файлов и каталогов. Они позволяют создавать ветки, копируя данные и запоминая, что копии связаны друг с другом. Кроме того, эти команды помогают дублировать изменения из одной ветки в другую. Наконец, они могут сделать так, что отдельные части рабочей копии будут отражать состояние различных веток, что позволит вам смешивать различные линии разработки. Именно этот способ для нас.
Важно!
Помните trunk/branch/tag это самые обычные папки, они не предписывают и не ограничивают использование репозитория SVN. Эти папки всего лишь помечают место, которое отводиться разработчику для работы над проектом. Т.е. папка branch это всего лишь рекомендованное место, где разработчик может проводить свои изыскания, папка tag это рекомендованное место для хранения релизов проекта. Никто не запрещает вам хранить релизы и проводить изыскания в других папках репозитория, но для упорядочивания репозитория лучше придерживаться правил хорошего тона.
3.3 Создание веток и меток
Вернемся опять к нашим разработчикам Васе и Пете. Они закончили свой проект и теперь решили выпустить метку (tags) – релиз данного проекта под номером 1.0. Для этого нужно воспользоваться командой Branch/Tag (рис. 3.1).
Рисунок 3.1 – Создание метки
Затем нужно указать полное имя места назначения метки и номер ревизии основного проекта для которого создается метка. В данном примере метка создается в папке tags/release_1.0 и источником является последняя ревизия проекта demo_project1 находящаяся в репозитории (рис. 3.2).
Рисунок 3.2 - Диалоговое окно выбора настроек создания метки проекта
Создание ветки производится точно таким же образом, но ветки создаются в директории branch (рис. 3.3). После этих действий состояние репозитория следующее (рис. 3.4).
Рисунок 3.3 - Диалоговое окно выбора настроек создания ветки проекта
Рисунок 3.4 – состояние репозитория
Очень важное замечание! Перед тем как делать ответвление от проекта обязательно синхронизируйте свою рабочую копию с репозиторием командой Update. Но если вы внесли множество изменений в основную ветку и не хотите их фиксировать в основной ветке (например, проект не отлажен), то можно сделать branch, опираясь на состояние рабочей копии, а не репозитория. В этом случае будет создана ветка, в которой будут зафиксированы все изменения.
Невообразимо важная подсказка! Если вы выпустили релиз проекта, а в нем обнаружена ошибка, не устраняйте ее метках (tags). Используйте один из двух вариантов.
1. Если нужно только устранить ошибку, то скопируйте метку(tag) в ветку (branch). Устраните ошибку, сделайте новую метку, удалите ветку.
2. Если устранение ошибки совмещено с модернизацией проекта, то выпустите новый релиз проекта.
Экстремально важная подсказка! Узнать к какому репозиторию, проекту и ветке относиться папка/файл можно из свойств папки/файла, которая находиться под контролем репозитория.