Файл: Центр дистанционного обучения online mirea ru Onlineedu mirea ru.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.03.2024
Просмотров: 7
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Центр дистанционного обучения
online.mirea.ru
Online-edu.mirea.ru
Технология разработки программных приложений
ФИО преподавателя: Петренко А.А. e-mail: petrenko@mirea.ru
Центр дистанционного обучения
online.mirea.ru
Контроль версий в программных проектах
ЛЕКЦИЯ 1
Рассматриваемые вопросы
1. Коллективная разработка программного обеспечения
2. Системы контроля версий и принципы их работы
3. Особенности применения Git
Центр дистанционного обучения
online.mirea.ru
Список литературы
1. Ициксон В.М. Лекции по технологии разработки программного обеспечения. –
СПб.: СПбПУ, 2019 г.
2. Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения. –
СПб.: Питер, 2012 г.
3.Иванова Г.С. Технология программирования.
– Москва: Кнорус, 2013 г.
Центр дистанционного обучения
online.mirea.ru
Технология разработки программных приложений (ТРПП)
МЕТОДЫ
СРЕДСТВА
(утилиты)
ПРОЦЕДУРЫ
Включает …
Обеспечивают решения
определенных задач в
разработке ПО: анализ
требований,
кодирование и т.п.
Обеспечивают
совместное
применение
методов
разработки ПО и
CASE-средств
CASE – средства и
системы
автоматизированной
поддержки методов
разработки ПО
Центр дистанционного обучения
online.mirea.ru
Группы процессов жизненного цикла по
ГОСТ Р
ИСО/МЭК 12207
(введен 2012-03-01)
Центр дистанционного обучения
online.mirea.ru
Коллективная работа над программным проектом
Основные задачи:
◦ общий доступ к файлам программного проекта;
◦ повышение надежности хранения файлов проекта;
◦ cохранение истории модификации (версий) файла;
◦ сравнение версий;
◦ пометка отдельных версий файла
◦ возможность возврата к предыдущим версиям
◦ поддержание и развитие нескольких параллельных историй развития проекта;
◦ объединение разрозненного программного кода.
Центр дистанционного обучения
online.mirea.ru
Общий доступ к файлу
Особенность:
◦ одновременное редактирование одного файла разными пользователями
Проблема:
◦ потеря изменений, сделанных пользователем
(затерты записью изменений другого пользователя)
Типовые пути решения:
◦ в параллельных системах для разрешения используются семафоры, мьютексы, критические секции и т.п.)
Центр дистанционного обучения
online.mirea.ru
Сохранение истории изменений файлов
Необходимо хранить последовательную непрерывную историю изменений файла:
◦ версия;
◦ автор изменения;
◦ время изменения;
◦ собственно изменения;
◦ причина изменения;
◦ прочие параметры на усмотрение разработчика.
Центр дистанционного обучения
online.mirea.ru
Пометка версий файла
Отдельные версии файлов необходимо специально помечать для обеспечения возможности выделения:
◦ одной версии файла от другой;
◦ версии, обладающей определенными cвойствами;
◦ версии, являющейся частью релиза заданного проекта определенной версии;
◦ и прочее на усмотрение разработчика.
Центр дистанционного обучения
online.mirea.ru
Поддержка и развитие несколько историй файла
Причины разветвления версий файла:
◦ развитие нескольких версий проекта:
- поставленных заказчику;
- разрабатываемых.
◦ наличие нескольких конфигураций проекта:
- для разной аппаратуры;
- для разных операционных систем.
◦ разработка новой (экспериментальной) функциональности.
Центр дистанционного обучения
online.mirea.ru
Системы контроля версий
Другие названия:
◦ системы управления версиями
(VCS – Version Control System)
◦ системы контроля ревизий
(RCS – Revision Control System)
◦ системы управления исходным кодом
(SCM – Source Code Management);
◦ прочие.
Центр дистанционного обучения
online.mirea.ru
Назначение и состав систем контроля версий
СКВ предназначены для автоматизации групповой работы и управления версионированием проектов.
СКВ предусматривают:
◦ репозиторий (или репозитории) хранения проектов;
◦ стандартные операции обеспечения групповой работы;
◦ клиентов для выполнения операций;
◦ прочее.
Центр дистанционного обучения
online.mirea.ru
Типы систем контроля версий
Централизованные СКВ характеризуются :
◦ единым централизованным хранилищем;
◦ клиент-серверным доступом.
Примеры: CVS, Subversion, MS Visual Source Safe и т.п.
Распределённые СКВ характеризуются:
◦ хранением репозитория на каждом компьютере;
◦ наличием сетевой синхронизации репозиториев посредством слияний (заплаток, патчей, change sets и т.п.);
◦ использованием в интернет-проектах, когда разработчики существенно удалены друг от друга.
Примеры: mercurial, git, Bazaar и т.п.
Центр дистанционного обучения
online.mirea.ru
Ревизия файла
Ревизия файла – уникальный идентификатор версии файла в системе контроля версии, например:
◦ CVS: 1.2
◦ SVN: 238
◦ Git, Mercurial: хэш SHA-1
При изменении файла номер ревизии изменяется по определенному правилу:
◦ иногда номер ревизии является атрибутом всего репозитория
Центр дистанционного обучения
online.mirea.ru
Атрибуты ревизии файла
К атрибутам ревизии файлов относятся:
◦ идентификатор;
◦ автор изменения;
◦ дата;
◦ текстовое описание изменения;
◦ внешние атрибуты
- тэги;
- идентификаторы ветвей.
◦ прочее.
Центр дистанционного обучения
online.mirea.ru
Хранимые копии проекта
Для централизованных СКВ:
◦ локальная копия проекта;
◦ локальная копия проекта, находящегося под контролем СКВ;
◦ серверная копия, находящая в репозитории.
Для распределенных СКВ:
◦ локальная копия проекта;
◦ локальная копия проекта, находящегося под контролем СКВ;
◦ Копия, находящая в локальном репозитории;
◦ Копия, находящая в удаленном репозитории.
Центр дистанционного обучения
online.mirea.ru
Централизованные системы контроля версий
Центр дистанционного обучения
online.mirea.ru
Распределенные системы контроля версий
Центр дистанционного обучения
online.mirea.ru
Принципы хранения файлов в системах версионирования
Поддержка текстового и бинарного формата хранения изменений
Для текстового формата:
◦ хранение инкрементных изменений;
◦ возможность визуального сравнения ревизий.
Для бинарного формата:
◦ хранение полных версий изменения файлов.
Центр дистанционного обучения
online.mirea.ru
Пометка версий в системах контроля версий
Основные способы:
◦ тэги;
◦ виртуальные каталоги.
Центр дистанционного обучения
online.mirea.ru
Тэги
Тэг – текстовая метка, привязанная к какой-либо ревизии файла или репозитория:
◦ одна ревизия может содержать несколько тэгов;
◦ выборку ревизии файла/файлов можно производить по тэгам.
Центр дистанционного обучения
online.mirea.ru
Виртуальные каталоги
Вместо тэга создается виртуальный каталог.
◦ В каталог помещаются виртуальные копии необходимых ревизий всех требуемых файлов
◦ Работа с таким каталогом происходит стандартными способами
Центр дистанционного обучения
online.mirea.ru
Типовые операции в системах контроля версий
◦ Импорт проекта (import)
◦
Экспорт проекта (export)
◦
Получение проекта (checkout, clone, …)
◦
Обновление файла (update)
◦
Фиксация изменений (commit)
◦
Сравнение изменений
◦
Установка тэгов
◦
Переход у другой ревизии (откат)
◦
Создание ветвей
◦
Переключение на ветвь
◦
Слияние (merge)
◦
Разрешение конфликтов
◦
Блокировка файлов
◦
Выгрузка изменений (push)
◦
Запрос на изменение (pull request)
◦
…
Центр дистанционного обучения
online.mirea.ru
Импорт проекта (import)
Первоначальное помещение локального проекта в репозиторий
Центр дистанционного обучения
online.mirea.ru
Экспорт проекта (export)
• Извлечение проекта из СКВ в локальный каталог;
•
Удаление проекта из СКВ.
Центр дистанционного обучения
online.mirea.ru
Получение проекта (checkout, clone)
Получение локального слепка проекта осуществляется по одному из критериев:
◦ головная версия проекта (HEAD, trunk, default, master,…);
◦ версия проекта на определенную дату;
◦ версия проекта с определенным тэгом;
◦ версия проекта из определенной ветви;
…
Центр дистанционного обучения
online.mirea.ru
Получение проекта
Центр дистанционного обучения
online.mirea.ru
Фиксация изменений (commit)
◦ посылка измененной версии файла в репозиторий;
◦ операция игнорируется, если ревизия на сервере изменилась.
Центр дистанционного обучения
online.mirea.ru
Обновление изменений (update)
◦ копирование свежей версии из репозитория;
◦ слияние локальных изменений и серверных в локальном файле.
Центр дистанционного обучения
online.mirea.ru
Разрешение конфликтов при операциях в СКВ
◦
Конфликт – это ситуация, когда одна и та же строка была по-разному изменена в двух версиях
◦ Если при слиянии произошел конфликт – в текст попадают обе версии участков кода с пометками
◦ Разрешение проводится только в локальной копии
◦ В репозитории хранятся только утвержденные версии с разрешенным конфликтом
* Отсутствие конфликта не означает отсутствия ошибок
Центр дистанционного обучения
online.mirea.ru
Разрешение конфликтов при операциях в СКВ
Центр дистанционного обучения
online.mirea.ru
Сравнение изменений в системе контроля версий
Сравнение изменений
◦ действует только для текстовых файлов;
◦ сравнивать можно любые две ревизии одного файла из любых ветвей проекта.
Центр дистанционного обучения
online.mirea.ru
Сравнение ревизий в системе контроля версий
Центр дистанционного обучения
online.mirea.ru
Ветви файлов
◦ Ветвь (ветка, branch) – механизм, который служит для ветвления дерева ревизий файла.
◦ Имя ветви однозначно определяет группу ревизий (ветвь).
◦ Имя ветви используется для переключения между ветвями ревизий файла.
Центр дистанционного обучения
online.mirea.ru
Системы контроля версий
Свободно-распространяемые системы
◦ * RCS
◦ CVS;
◦ Subversion (SVN);
◦ Mercurial;
◦ Git;
◦ Bazaar;
◦ Darcs;
◦ другие.
Центр дистанционного обучения
online.mirea.ru
Система CVS
◦ Одна из первых и изначально самых распространенных систем.
◦ Состоит из двух частей: сервера и клиента.
◦ Стандартный клиент – консольный, позволяет выполнять все операции.
◦ Имеется множество графических клиентов
◦ http://www.cyclic.com/
Центр дистанционного обучения
online.mirea.ru
Система CVS
Центр дистанционного обучения
online.mirea.ru
Система CVS
Центр дистанционного обучения
online.mirea.ru
Система CVS
Центр дистанционного обучения
online.mirea.ru
Система Subversion (SVN)
◦ создана с целью заменить CVS;
◦ исправляет большинство недостатков CVS;
◦ http://subversion.tigris.org
◦ имеется большое количество графических клиентов.
Центр дистанционного обучения
online.mirea.ru
Система Subversion (SVN)
Центр дистанционного обучения
online.mirea.ru
Система SmartSVN
Центр дистанционного обучения
online.mirea.ru
Распределенные системы контроля версий
◦ Mercurial;
◦ Git;
◦ Bazaar;
◦ Darcs;
◦ Monotone;
◦ GNU arch;
◦ …
Центр дистанционного обучения
online.mirea.ru
Коммерческие системы контроля версий
◦ Microsoft Visual SourceSafe
◦ IBM Rational ClearCase
◦ Microfocus StarTeam
◦ Perforce
◦ Microsoft Team Foundation Server
◦ …
Центр дистанционного обучения
online.mirea.ru
Спасибо за внимание!