13
Лабораторная работа №14 «Настройка работы системы контроля версий (типов
импортируемых файлов, путей, фильтров и др. параметров импорта в репозиторий)»
Система управления/контроля версиями (от англ. Version Control System или Revision Control
System) — программное обеспечение для облегчения работы с изменяющейся информацией.
Система управления версиями позволяет хранить несколько версий одного и того же документа,
при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или
иное изменение и многое другое.
Такие системы наиболее широко применяются при разработке программного обеспечения, для
хранения исходных кодов разрабатываемой программы. Однако, они могут с успехом применяться
и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся
электронных документов, в частности, они всё чаще применяются в САПР, обычно, в составе систем
управления данными об изделии (PDM). Управление версиями используется в инструментах
конфигурационного управления (Software Configuration Management Tools).
Распространённые системы управления версиями
● Subversion
● Darcs
● Microsoft Visual SourceSafe
● Bazaar
● Rational ClearCase
● Perforce
● BitKeeper
● Mercurial
● Git
● GNU Arch
● CVS — устаревшая. Потомок: Subversion
● RCS — устаревшая. Потомок: CVS
Основные
понятия
Репозиторий (repository) – центральное хранилище, которое содержит версии файлов. Очень
часто репозиторий организуется средствами какой-нибудь СУБД.
Версия файла (revision) – состояние файла в определенный момент времени. Репозиторий
предоставляет возможность хранить неограниченное число версий одного и того же файла.
Актуальная версия файла – обычно это самая последняя версия файла, размещенного в
репозитории.
Рабочая версия файла (working copy) – версия файла, с которой в текущий момент ведется
работа, и которая не загружена в репозиторий.
Загрузка (Upload) – размещение файла в репозитории. В процессе
загрузки в репозиторий
помещается рабочая версия файла.
Выгрузка (Checkout) – получение файла из репозитория. В процессе выгрузки осуществляется
получение из репозитория необходимой версии файла.
Синхронизация (update, sync) – приведение в соответствие рабочих версий файлов с
актуальными версиями в репозитории. В процессе синхронизации в репозиторий загружаются те
файлы, рабочие копии которых являются более "свежими" (т.е. имеют более поздние версии), по
сравнению с файлами в репозитории, и выгружаются те файлы, рабочие копии которых устарели по
сравнению с копиями в репозитории.
Borland StarTeam
Borland StarTeam – очень мощный и функциональный кросс-платформенный продукт,
разрабатываемый в прошлом фирмой StarBase, которую Borland приобрела в конце 2002 г. Заметное
преимущество данного решения состоит в том, что версия 2005 выступает центральным элементом
стратегии управления жизненным циклом приложений (Application Lifecycle Management, ALM)
компании Borland и обладает расширенными возможностями интеграции со всеми ее ключевыми
пакетами, используемыми при разработке программного обеспечения.
MS SourceSafe
Microsoft Visual SourceSafe (Visual SourceSafe, VSS) — программный
продукт компании
Майкрософт, файл-серверная система управления версиями, предназначенная для небольших
команд разработчиков. VSS позволяет хранить в общем хранилище файлы, разделяемые
несколькими пользователями, для каждого файла хранится история версий. VSS входит в состав
пакета Microsoft Visual Studio и интегрирован с продуктами этого пакета. Доступен только для
14
платформы Windows. Версию для Unix поддерживает компания MainSoft. В ноябре 2005 года вышла
обновлённая версия продукта — Visual SourceSafe 2005, обещающая повышенную стабильность и
производительность, улучшенный механизм слияния для
XML-файлов и файлов в Юникоде, а
также работу через HTTP. Visual SourceSafe нацелен на индивидуальных разработчиков либо
небольшие команды разработчиков. Там где VSS недостаточно, ему на замену предлагается новый
продукт Майкрософт — Team Foundation Server, входящий в состав Visual Studio Team System.
Rational Clear Case
ClearCase поддерживает следующие возможности, разительно отличающие его в лучшую
сторону от других средств контроля:
● Общий контроль версий не только файлов, но и директорий/поддиректорий;
● Бесконечное число ответвлений от
определенной версии;
● Автоматическая компрессия файлов и их кеширование (СС позволяет хранить большое
количество данных, при всем при этом база данных остается компактной и быстрой);
● Позволяет легко конвертировать базы данных других средств контроля, например: PVCS,
SourceSafe, RCS, CVS и SCCS;
● Поддерживает параллельную разработку и мультикомандные подразделения,
расположенные в географически удаленных друг от друга местах;
● Мультиплатформенность (способен объединить единой средой участников, работающих на
разных операционных системах);
● Имеет интеграцию со
средствами разработки;
● Имеет Web-интерфейс для удаленного контроля.
CVS
CVS (Concurrent Versions System, "Система Конкурирующих Версий" ). Хранит историю
изменений определённого набора файлов, как правило исходного кода программного обеспечения,
и облегчает совместную работу группы людей (часто — программистов) над одним проектом. CVS
популярна в мире открытого ПО. Система распространяется на условиях лицензии GNU GPL.
Subversion
Subversion — централизованная система (в отличие от распределённых систем, таких, как Git
или Mercurial), то есть данные хранятся в едином хранилище. Хранилище может располагаться на
локальном диске или на сетевом сервере. Работа в Subversion мало отличается от работы в других
централизованных системах управления версиями. Для совместной работы над файлами в
Subversion преимущественно используется модель Копирование-Изменение-Слияние. Кроме того,
для файлов, не допускающих слияние (различные бинарные форматы файлов), можно использовать
модель Блокирование-Изменение-Разблокирование.
1. Настроить подключение к репозиторию
2.
Скачать проект
3. Добавить свой класс к проекту
4. Внести изменения к класс
5. Обновить класс в репозитории
6. Удалить все локальные файлы и скачать проект из репозитория
7. Добавить "лишний" файл в репозиторий и затем удалить его из репозитория.
8. Изучить журнал изменений файлов, посмотреть какие
изменения внесены другими
разработчиками.
Примечание: опробовать Git, Subversion, Mercurial (локально)
Ссылки на учебные репозитории:
Git
o
https://github.com/irgups/project_2015_01.git
o
https://github.com/irgups/project_2015_02.git
Subversion
o
https://github.com/irgups/project_2015_01
o
https://github.com/irgups/project_2015_02