Научная статья на тему 'Принципы работы и возможности системы управления версиями'

Принципы работы и возможности системы управления версиями Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
936
147
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УПРАВЛЕНИЕ / СИСТЕМЫ УПРАВЛЕНИЯ / СЕТИ СВЯЗИ / СИСТЕМЫ КОНТРОЛЯ ВЕРСИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сиротенко Ф.Ф.

Дается определение системе управления версиями. Рассматриваются существующие системы управления версиями. Приводятся принципы работы и возможности системы управления версиями.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Принципы работы и возможности системы управления версиями»

CONTROL SYSTEMS

His

Принципы работы и возможности системы

управления версиями

Дается определение системе управления версиями. Рассматриваются существующие системы управления версиями. Приводятся принципы работы и возможности системы управления версиями.

Ключевые слова: Управление, системы управления, сети связи, системы контроля версий.

Сиротенко Ф.Ф., ФГУП "НИИ "Рубин"

В настоящее время на крупных предприятиях и в научно-исследовательских учреждениях, при работе с документами, или при создании программного продукта, все чаше сталкиваются с проблемой контроля разработанных версий. Например, когда крупное подразделение разрабатывает один программный продукт или работает с одной и той же документацией, возникает проблема контроля версий. Под версией понимают вариант исполнения какого-либо проекта, документа (текстовой файл, рисунок), программного продукта.

Система управления (контроля) версиями представляет собой класс программных продуктов, нацеленных на решение ряда задач, с которыми повседневно сталкивается каждый разработчик программного обеспечения. Другими словами система управления версиями представляет собою централизованную систему хранения и учета программных продуктов и документации.

Основной задачей системы управления версиями является обеспечение совместного редактирования и распределения информации. С помощью системы управления версиями, будь то программист или разработчик программного обеспечения, может следить за изменением кода своего программного продукта в ходе его разработки.

В настоящее время существует множество систем управления версиями. Самыми распространенными являются:

— Revision Control System (RCS);

— Concurrent Versions System (CVS);

— Subversion (SVN);

RCS (Revision Control System) была разработана в 1985 г., является одной из самых первых систем управления версиями: для каждого файла, зарегистрированного в системе, она хранит полную историю изменений, причём для текстовых файлов используется эффективный алгоритм дельта-компрессии, когда хра-

нится только последняя версия и все межверси-онные изменения. Система позволяет также хранить версии бинарных файлов, но без использования этого механизма, то есть каждая версия бинарного файла хранится полностью.

Система RCS не имеет средств для коллективной работы над набором файлов эти средства появились в системе-наследнице CVS, использующей форматы и алгоритмы RCS для учёта версий, но имеющей также интерфейсы для коллективной работы.

Отсутствие коллективной работы на практике выглядит так, что только тот пользователь, который произвел действие над файлом или файлами, может вносить изменения. Другие пользователи запросить эти же файлы на редактирование не могут.

CVS (Concurrent Versions System) — программный продукт, относящийся к разряду систем управления версиями (англ. version control system). Хранит историю изменений определённого набора файлов, как правило исходного кода программного обеспечения, и облегчает совместную работу группы людей над одним проектом. CVS популярна в мире открытого программного обеспечения. Система распространяется на условиях лицензии GNU GPL.

CVS использует архитектуру клиент-сервер. Обычно клиент и сервер соединяются через локальную сеть или через Интернет, но могут работать и на одной машине, если необходимо вести историю версий локального проекта. Серверное ПО обычно работает под управлением Unix (хотя существует CVS сервер и для Windows NT), тогда как CVS клиенты доступны во всех популярных операционных системах.

Сервер хранит в специальном хранилище (репозитории) текущую версию (версии) проекта и историю изменений, а клиент соединяется с ним, чтобы получить нужную ему версию или записать новую. Получив с сервера нужную версию (данная процедура называется

Principles of operation and possibility of version management system

Sirotenko F.F.,

The Federal State Unitary Enterprise "Scientific Research Institute "Rubin"

Abstract

Defines as a control system of versions. Existing control systems of versions are considered. Principles of work and an opportunity of a control system are resulted by versions.

Keywords: Management, control systems, communication networks, monitoring systems of versions.

High technologies in Earth space research № 1-2010

check-out), клиент создаёт локальную копию проекта (или его части) так называемую рабочую копию. После того как в файлы, находящиеся в рабочей копии, внесены необходимые изменения, они пересылаются на сервер (check-in).

Несколько клиентов могут работать над копиями проекта одновременно. Когда они отправляют результаты, сервер пытается слить их изменения в репозитории вместе. Если это не удаётся, например, в случае, когда два клиента изменили одни и те же строки в определённом файле, сервер не примет изменения от последней check-in операции и сообщит клиенту о конфликте, который должен быть исправлен вручную. Если check-in операция завершилась успешно, то номера версий всех затронутых файлов автоматически увеличиваются, и сервер записывает комментарий, дату и имя пользователя в свой журнал (data logging).

Клиенты также могут сравнить различные версии файлов, запросить полную историю изменений или получить исторический образ проекта на определённое число или по номеру ревизии. Многие Open Source проекты разрешают анонимный доступ на чтение, который впервые был применён OpenBSD. Это означает, что клиенты могут запрашивать и сравнивать версии файлов без пароля; только check-in операции ведущие к изменению данных в репозитории требуют пароль.

Subversion (SVN) — это бесплатная система

управления версиями с открытым исходным кодом. Subversion позволяет управлять файлами и каталогами, а так же сделанными в них изменениями во времени. Это позволяет восстановить более ранние версии данных, даёт возможность изучить историю всех изменений. Благодаря этому многие считают систему управления версиями своего рода "машиной времени".

Subversion — централизованная система. Данные хранятся в едином хранилище. При сохранении новьх версий используется дельта-компрессия, т. е. система находит отличия новой версии от предыдущей и записывает только их, избегая ненужного дублирования данных

Subversion может работать через сеть, что позволяет использовать её на разных компьютерах. В какой то степени, возможность большого количества людей не зависимо от их местоположения совместно работать над единым комплектом данных поощряет сотрудничество. Когда нет того ответственного звена цепи, того контролирующего элемента, который утверждает все изменения, работа становится более эффективной. При этом не нужно опасаться, что отказ от контролирующего элемента повлияет на качество, ведь благодаря сохранению истории изменений, даже если при изменении данных будут допущены ошибки, всегда можно сделать откат изменений к прежнему состоянию.

В таблице 1 приведены основные различия трех систем управления версиями. Обсуждать

СИСТЕМЫ УПРАВЛЕНИЯ

возможности Subversion удобнее всего в разрезе её улучшений по сравнению с CVS. Subversion предоставляет следующие возможности:

а) Subversion отслеживает версии не только отдельных файлов, но и целых структур каталогов.

б) Subversion делает возможным добавление, удаление, копирование и переименование как файлов, так и каталогов. При этом каждый вновь добавленный файл начинает жизнь с чистого листа, сохраняя собственную историю изменений.

в) Subversion одинаково эффективно работает как с текстовыми, так и с бинарными файлами. Subversion обнаруживает различия между файлами с помощью специального бинарного алгоритма. Файлы записываются в хранилище в сжатом виде независимо от их типа, а различия между отдельными версиями могут передаваться по сети в обоих направлениях.

г) Каждый набор изменений либо попадает в хранилище целиком, как одна транзакция, либо состояние хранилища не изменяется. Это позволяет разработчикам создавать и фиксировать изменения логически оправданными кусками, предотвращая тем самым проблемы, которые могут возникать в тех случаях, когда только часть необходимых изменений помещается в хранилище успешно.

д) Subversion не использует ветки и метки. Вместо них используется иерархия каталогов, то есть для каждой метки и ветки создается отдельный каталог. В результате операции по созданию веток и меток занимают немного времени.

е) Любой файл или каталог в Subversion имеет собственный набор свойств, состоящий из названия и значения. Свойства файлов точно так же находятся под управлением версиями, как и их содержимое.

ж) Subversion реализована в виде набора динамических библиотек на языке C, API которых хорошо известен. Это делает Subversion чрезвычайно удобной для сопровождения системой, пригодной для взаимодействия с другими приложениями и языками программирования.

По состоянию на 2006 год Subversion уступает по распространённости CVS, однако её можно назвать наиболее популярной альтернативой этой традиционной системе. Многие сообщества разработчиков открытого программного обеспечения перешли на использование Subversion. В их числе такие известные

Наукоёмкие технологии в космических исследованиях Земли № 1-2010

Таблица 1

Возможности систем управления версий

Система контроля версиями SVN CVS RCS

Возможность системьт-\

Коллективность работы над набором файлов + + -

Открытый исходный код + + +

Работа с большинством операционных систем + + -

Большой выбор «клиентских частей» + + -

Возможность работать с каталогами + - -

Блокировка файлов + - -

Архитектура клиент-сервер + + -

Возможность работать с различными типами файлов +

Хранение только сделанных изменений + - -

CONTROL SYSTEMS

HiS

RESEARCH

проекты как Apache Software Foundation, KDE, GNOME, GCC, MediaWiki, Python, Samba, Mono и многие другие.

Subversion разрабатывалась специально для замены CVS, самой распространенной открытой системы управления версиями.

Основными преимуществами Subversion являются:

— открытый исходный код;

— бесплатная лицензия;

— легкий переход с CVS на Subversion;

— огромный выбор "клиентских частей";

— работает с большинством операционных систем;

— широкое распространение среди разработчиков программного обеспечения;

Система управления версиями должна в самое ближайшее время стать главным помощником при разработке систем управления сетями и услугами связи. Системы управления версиями поможет пользователю контролировать создаваемые файлы, папки, документы и про-

граммные продукты. Subversion является одной из самых перспективных систем управления версиями, и в будущем может получить еще более широкое применение.

Литература

1. Бен Коллинз-Сассман, Брайан У. Фитцпат-рик, К. Майкл Пилато. Управление версиями в Subversion, 2007.

2. http://subversion.tigris.org.

High technologies in Earth space research № 1-2010

i Надоели баннеры? Вы всегда можете отключить рекламу.