Системы контроля версий
Понятие и использование системы контроля версий. Слияние версий. Локальные, централизованные и распределенными системы контроля версий. Графический интерфейс пользователя и требования к системе. Создание репозитория и его копии, работа с файлами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.02.2015 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рисунок 5.3.13 Создание новой ветви
Заключение
В работе были рассмотрены системы контроля версий, проведен краткий сравнительный анализ систем.
Такого рода системы позволяют облегчить проекты по разработки программного обеспечения, и в определенной степени исключить человеческие ошибки. Существующие системы мониторинга помогут в случае возникновения каких-либо нестыковок в работе.
В настоящее время существует большое количество систем контроля версий, и наиболее интересные и информативные варианты представлены в работе. Пока не существует идеальных систем, каждая из них обладает определенными недостатками, но одновременно с этим и рядом особенностей, которые выделяют ее.
На смену относительно старым системам приходят улучшенные альтернативы. Другие системы более приятны и предоставляют лучший рабочий опыт. У потребителя, безусловно, есть много возможностей для выбора. Большинство производителей предлагают демонстрационные версии своих программных продуктов.
СКВ являются потрясающим решение проблем распространенных корпораций. Безусловно данная область будет развиваться и в дальнейшем возможно увеличение числа систем и существенная доработка существующих.
В приложении А представлено сравнение Subversion и CVS в виде таблице. В приложении Б представлена сравнительная таблица разных систем контроля версий. В приложении В краткий словарь основных терминов СКВ.
Список источников
1. Новое поколение систем контроля версий [Электронный ресурс]. Доступ к ст.: http://www.techinfo.net.ru/docs/Version_Control_Systems.html.
2. Википедия [Электронный ресурс]. Доступ к ст.: http://ru.wikipedia.org/wiki/CVS.
3. Википедия [Электронный ресурс]. Доступ к ст.: http://ru.wikipedia.org/wiki/Subversion.
4. Система контроля версий Git [Электронный ресурс]. Доступ к ст.: http://git-scm.com/book/ru.
5. Система контроля версий Mercurial [Электронный ресурс]. Доступ к ст.: http://mercurial.ru/.
6. Система контроля версий SVN [Электронный ресурс]. Доступ к ст.: http://tortoisesvn.net.
Приложение А
Таблица 1
Сравнение Subversion и CVS
Возможности |
|||
Параметр |
Subversion |
CVS |
|
Директории |
Отслеживает версии не только файлов, но и директорий. |
Версии директорий не отслеживаются, то есть структура директорий одна и та же (та, которая существует в хранилище на данный момент) для всех ревизий и всех веток. При извлечении старых состояний получаем правильные (старые) ревизии файлов, но в неправильной (существующей на момент извлечения) структуре директорий. |
|
Транзакции |
Атомарность многофайловых публикаций. |
Атомарность только на уровне однофайловых публикаций. Фактически публикация изменений в нескольких файлах разбивается на последовательность публикаций изменений отдельных файлов. Если такая публикация прервана, то часть файлов остается опубликованной, часть - не опубликованной. |
|
Наборы изменений |
Наборы изменений поддерживаются. |
Наборы изменений не поддерживаются. |
|
Модификации имён файлов |
Поддерживает копирование, перемещение и переименование файлов и директорий с сохранением истории изменений. |
При копировании, перемещении и переименовании файлов файл с новым именем не имеет никакой истории, то есть связь со старым именем и его историей версий полностью теряется. То же самое для файлов внутри директории при модификации её имени. |
|
Свойства |
С каждым файлом и директорией может быть связан произвольный набор свойств, состоящих из названия и значения. Свойства тоже находятся под управлением версиями. |
Свойства не поддерживаются |
|
Блокировки |
Поддерживается необязательная блокировка файлов (начиная с версии 1.2). |
Блокировки не поддерживаются, но есть похожий механизм, называемый слежение |
|
Ветви |
Ветви реализованы в пространстве путей. Это значит, что для создания ветви производится копирование директории (копия и будет ветвью). Создание таких копий -- быстрая и не ресурсоёмкая операция, потому что данные не дублируются, вместо этого публикуется новая версия, отличающаяся от предыдущей лишь расположением файлов. |
Ветви реализованы в «третьем измерении». Это значит, что файл на ветви адресуется тремя параметрами: путём в файловой системе, ревизией (или другим способом указания ревизии, например, временем), именем ветви. |
|
Метки |
Нет меток, как таковых. Вместо них используется иерархия директорий -- для метки создаётся отдельная директория (как и для ветви). Метка -- это ветвь, в которой по договоренности больше не делают изменений. Метка является копией помеченного состояния файлов и директорий. |
Метки поддерживаются. Метка адресует помеченное состояние файлов. |
|
Эффективность |
|||
Клиент-серверный обмен |
При любых обновлениях версий между клиентом и сервером передаются только различия между файлами, что может существенно уменьшить сетевой трафик. |
С сервера к клиенту передаются различия, с клиента на сервер объект передаётся полностью |
|
Двоичные файлы |
Одинаково эффективно работает как с текстовыми, так и с двоичными файлами. |
Работа с двоичными файлами менее эффективна: каждая новая версия сохраняется в хранилище полностью. |
|
Создание ветвей и меток |
Требуется небольшое фиксированное количество времени и дискового пространства |
Затраты времени велики (зависят от количества задействованных файлов). Имена ветвей и меток хранятся избыточно (во всех задействованных файлах). |
|
Накладные расходы в рабочей копии |
В служебных директориях рабочей копии хранится чистая копия. Поэтому операции просмотра и отката локальных изменений выполняются быстро (без обращения к хранилищу), однако размер рабочей копии на диске примерно в два раза больше, чем размер самих данных. |
Чистая копия не хранится, размер рабочей копии примерно равен размеру данных. Вследствие этого операции просмотра и отката локальных изменений требуют доступа к хранилищу и выполняются медленно. |
|
Расход памяти |
Меньше |
Больше. |
Приложение Б
Таблица 2
Сравнительная таблица систем контроля версий
CVS |
Subversion |
Arch |
Monotone |
Opencm |
Aegls |
Darcs |
Perforce |
||
Коммиты |
Не атомарные |
Атомарные |
Атомарные |
Атомарные |
Атомарные |
Атомарные |
Атомарные |
Атомарные |
|
Перемещение и переименование файлов и директорий |
Нет |
Да |
Да |
Да |
Да |
Да |
Да |
||
Копирование файлов и директорий |
Нет |
Да |
Нет |
Да |
Нет |
Нет |
Нет |
||
Репликация, создание удаленной копии репозитория |
Нет |
Да, с версии 1.4.0 (svnsync) |
Да |
Да |
Нет |
Да |
Да |
||
Прием изменений из удаленного репозитория |
Нет |
Через внешние скрипты |
Да |
Да |
Нет |
Да |
Да |
Да |
|
Разграничение доступа к различным частям репозитория |
Ограниченно, через "pre-commit hook scripts" |
Да, через средства webdav, с версии 1.3.0 - встроен |
Да |
Да |
Права доступа привязаны к ветке |
Да |
Нет |
Да |
|
Changesets |
Нет |
Частично |
Да |
Да |
Да |
Да |
Да |
||
Подробная история построчных изменений |
Да |
Да |
Только в viewarch |
Да |
Да |
Да |
Да |
||
Возможность получения отдельной директории из репозитория |
Да |
Да |
Только репозиторий целиком |
Нет |
Нет |
Да |
Нет |
Да |
|
Контроль изменений в рабочей копии, до commit'а в репозиторий |
Да, cvs diff |
Да |
Да |
Да |
Да |
Нет |
Да |
Да |
|
Задание отдельного текста комментария для отдельного файла при commit'е |
Нет, только на блок изменений |
Нет |
Нет |
Да |
Да |
Нет |
Нет |
||
Качество и объем документации |
Отлично |
Отлично |
Удовл. |
Хорошо |
Хорошо |
Хорошо |
Хорошо |
Объём большой, качество среднее |
|
Простота установки, зависимость от стороннего ПО |
Хорошо |
При выборе Apache как сервера-хорошо |
Отлично |
Отлично |
Хорошо |
Работает под root, файлы SUID-root |
Для сборки нужен Glasgow Haskell Compiler |
Пакет полностью самодостаточен и не зависит от стороннего ПО |
|
Совместимость команд с CVS |
Да |
Да |
Частично |
Частично |
Да |
Нет |
Нет |
Нет |
|
Сервер для доступа по сети |
Да |
Webdav+deltav или собственный протокол |
Отлично (FTP, SFTP, webdav,SMB) |
Хорошо (netsync) |
Есть клиент/сервер |
Слабо развит |
Через HTTP, SSH или email |
P4d, p2p |
|
Web интерфейсы пользователя |
Множество (webcvs, viewcvs, Chora, wwcvs) |
Множество |
Viewarch archzoom |
Нет |
Нет |
Да |
Darcs.cgi |
P4web |
|
GUI интерфейсы пользователя |
Множество (встроенная поддержка во многих IDE |
Множество (tortoisesvn, rapidsvn, Jsvn) |
Tlator, Octopy, archway |
Нет |
Нет |
Tkaegis |
Нет |
P4v, p4win |
|
Лицензия |
GPL |
Apache/BSD-style |
GNU GPL |
GNU GPL |
GNU GPL |
GNU GPL |
GNU GPL |
Все компоненты пакета распространяются бесплатно в бинарном виде и являются полностью функциональными |
Приложение В
Словарь
Общепринятой терминологии не существует, в разных системах могут использоваться различные названия для одних и тех же действий. Ниже приводятся некоторые из наиболее часто используемых вариантов. Приведены английские термины, в литературе на русском языке используется тот или иной перевод или транслитерация.
Branch (ветвь) - направление разработки, независимое от других. Ветвь представляет собой копию части (как правило, одного каталога) хранилища, в которую можно вносить свои изменения, не влияющие на другие ветви. Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные после неё.
Changeset, activity (набор изменений) - представляет собой поименованный набор правок, сделанных в локальной копии для какой-то общей цели. В системах, поддерживающих наборы правок, разработчик может объединять локальные правки в группы и выполнять фиксацию логически связанных изменений одной командой, указывая требуемый набор правок в качестве параметра. При этом прочие правки останутся незафиксированными. Типичный пример: ведётся работа над добавлением новой функциональности, а в этот момент обнаруживается критическая ошибка, которую необходимо немедленно исправить. Разработчик создаёт набор изменений для уже сделанной работы и новый -- для исправлений. По завершении исправления ошибки отдаётся команда фиксации только второго набора правок.
Сheck-in, commit, submit - создание новой версии, фиксация изменений. Распространение изменений, сделанных в рабочей копии, на хранилище документов. При этом в хранилище создаётся новая версия изменённых документов.
Сheck-out, clone - извлечение документа из хранилища и создание рабочей копии.
Сonflict (конфликт) - ситуация, когда несколько пользователей сделали изменения одного и того же участка документа. Конфликт обнаруживается, когда один пользователь зафиксировал свои изменения, а второй пытается зафиксировать и система сама не может корректно слить конфликтующие изменения. Поскольку программа может быть недостаточно разумна для того, чтобы определить, какое изменение является «корректным», второму пользователю нужно самому разрешить конфликт.
Head (основная версия) - самая свежая версия для ветви/ствола, находящаяся в хранилище. Сколько ветвей, столько основных версий.
Lock - команда блокировки.
Merge, integration (слияние) - объединение независимых изменений в единую версию документа. Осуществляется, когда два человека изменили один и тот же файл или при переносе изменений из одной ветки в другую.
Patch - внесение изменений в файл.
Rebase - перенос точки ветвления (версии, от которой начинается ветвь) на более позднюю версию основной ветви. Например, после выпуска версии 1.0 проекта в стволе продолжается доработка (исправление ошибок, доработка имеющегося функционала), одновременно начинается работа над новой функциональностью в новой ветви. Через какое-то время в основной ветви происходит выпуск версии 1.1 (с исправлениями); теперь желательно, чтобы ветвь разработки новой функциональности включала изменения, произошедшие в стволе. Вообще, это можно сделать базовыми средствами, с помощью слияния (merge), выделив набор изменений между версиями 1.0 и 1.1 и слив его в ветвь. Но при наличии в системе поддержки перебазирования ветви эта операция делается проще, одной командой: по команде rebase (с параметрами: ветвью и новой базовой версией) система самостоятельно определяет нужные наборы изменений и производит их слияние, после чего для ветви базовой версией становится версия 1.1; при последующем слиянии ветви со стволом система не рассматривает повторно изменения, внесённые между версиями 1.0 и 1.1, так как ветвь логически считается выделенной после версии 1.1.
Repository, depot (хранилище документов) - место, где система управления версиями хранит все документы вместе с историей их изменения и другой служебной информацией.
Revision (версия документа). Системы управления версиями различают версии по номерам, которые назначаются автоматически.
Shelving (откладывание изменений). Предоставляемая некоторыми системами возможность создать набор изменений (changeset) и сохранить его на сервере без фиксации (commit'а). Отложенный набор изменений доступен на чтение другим участникам проекта, но до специальной команды не входит в основную ветвь. Поддержка откладывания изменений даёт возможность пользователям сохранять незавершённые работы на сервере, не создавая для этого отдельных ветвей.
Staging area - область подготовленных файлов
Tag, label - метка, которую можно присвоить определённой версии документа. Метка представляет собой символическое имя для группы документов, причем метка описывает не только набор имен файлов, но и версию каждого файла. Версии включенных в метку документов могут принадлежать разным моментам времени.
Trunk, mainline, master (ствол) - основная ветвь разработки проекта. Политика работы со стволом может отличаться от проекта к проекту.
Update, sync - синхронизация рабочей копии до некоторого заданного состояния хранилища. Чаще всего это действие означает обновление рабочей копии до самого свежего состояния хранилища. Однако при необходимости можно синхронизировать рабочую копию и к более старому состоянию, чем текущее.
Working copy - рабочая (локальная) копия документов.
Working directory - рабочий каталог
Размещено на Allbest.ru
...Подобные документы
Возможности системы контроля версий - программы, предназначенной для работы с изменяющимися документами. Ее свойства и практики использования. Внутреннее устройство хранилища. Рабочая копия версионируемых документов. Централизованные и распределённые СКВ.
презентация [381,7 K], добавлен 05.01.2014Анализ методов и средств контроля доступа к файлам. Проблемы безопасности работы с файлами, средства контроля доступа ним. Идеология построения интерфейса, требования к архитектуре. Работа классов системы. Оценка себестоимости программного продукта.
дипломная работа [2,5 M], добавлен 21.12.2012Анализ архитектуры ОС Windows 8. Сравнение с предыдущими версиями (интерфейс Modern UI, работа с учетными записями, модель безопасности, диспетчер задач, история файлов, восстановление системы, Storage Spaces). Особенности различных версий Windows 8.
курсовая работа [289,1 K], добавлен 25.01.2016Этапы разработки автоматизированной системы приема и бронирования заказов столиков в заведениях. Анализ среды разработки Android Development Tools. Общая характеристика диаграммы компонентов IOS приложения. Рассмотрение системы контроля версий сервера.
курсовая работа [8,7 M], добавлен 14.05.2014Графические интерфейсы и расширения для DOS. История развития операционной системы Microsoft Windows. Новшества ее современных версий: пользовательский интерфейс, языковая интеграция, системы защиты. Хронология развития и архитектура системы GNU/Linux.
реферат [38,9 K], добавлен 25.10.2010Пакет средств разработки DirectX под Microsoft Windows, характеристика наборов COM-совместимых объектов в его составе. Ключевые особенности версий, шейдерные языки. Описание основных используемых функций. Исходный код программы, примеры ее работы.
курсовая работа [422,2 K], добавлен 16.02.2015Windows как посредник пользователя и операционной системы, облегчая процесс общения между ними, история становления и развития ее первых версий. Функциональные особенности и отличия Windows 95/98/ME и Windows NT/2000/XP/Vista/7, их архитектурные решения.
презентация [12,7 K], добавлен 23.10.2013Сокращение затрат на ремонтные работы по устранению дефектов, достигаемых при использовании информационной системы для их контроля. Анализ предметной области и программных средств. Расчет экономии за счет увеличения производительности труда пользователя.
дипломная работа [3,8 M], добавлен 19.01.2017Понятие, сущность, структура и виды операционных систем. Характеристика операционной системы Windows XP, требования к ее установке, сравнительный анализ версий, особенности настройки, обновления версии, установки драйверов устройств и добавление новых.
реферат [558,8 K], добавлен 20.10.2009Появление первых версий Windows, их графические интерфейсы и расширения для DOS. Семейства Windows 3.x и Windows 9.x, их особенности и основные функции. Эволюция технологии Plug and Play. Наиболее существенные улучшения в современных версиях Windows.
реферат [162,3 K], добавлен 13.06.2014Использование операционных систем Microsoft Windows. Разработка операционной системы Windows 1.0. Возможности и характеристика последующих версий. Выпуск пользовательских операционных систем компании, доработки и нововведения, версии Windows XP и Vista.
реферат [23,3 K], добавлен 10.01.2012Проблема создания автоматизированных рабочих мест врачей. Клинические системы информационной поддержки медицинского персонала лечебных учреждений. Создание электронных версий историй болезни. Тематические рубрикаторы группировки информации о пациентах.
реферат [41,9 K], добавлен 25.04.2015История создания и развития операционной системы Microsoft Windows. Особенности каждой из ее версий. Новшества в интерфейсе, встроенных программах, системе управления и использования ОС, увеличение скорости выполнения приложений возможностями мультимедиа.
реферат [29,5 K], добавлен 30.11.2013Общие сведения о предприятии "Гранит-ВТ". Основной вид деятельности - производство вычислительных модулей общего назначения. Разработка программы, предназначеной для автоматизированной проверки версий всех компонентов изделия. Алгоритм работы программы.
отчет по практике [33,8 K], добавлен 23.12.2009Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад [19,1 K], добавлен 16.10.2011Назначение и устройство микропроцессорной системы контроля. Описание функциональной схемы микропроцессорной системы контроля. Расчет статической характеристики канала измерения. Разработка алгоритма функционирования микропроцессорной системы контроля.
курсовая работа [42,0 K], добавлен 30.08.2010Элементы интерфейса, панели инструментов и быстрого доступа Microsoft Word 2007. Особенности сохранения и преобразования файлов предыдущих версий Word в формате DOCX. Изменение масштаба отображения документа в режиме чтения и форматирования текста.
курсовая работа [2,8 M], добавлен 27.01.2015Особенности решения задачи контроля и управления посещением охраняемого объекта. Создание системы как совокупности программных и технических средств. Классификация систем контроля и управления доступом. Основные устройства системы и их характеристика.
презентация [677,7 K], добавлен 03.12.2014Рассмотрение истории создания и особенностей основных версий программы Adobe Illustrator. Описание рабочего пространства системы векторного редактирования графики. Автоматическое изменение размера области текста, работа с таблицами, синхронизация цвета.
реферат [946,7 K], добавлен 22.07.2015Требования к системе проектирования информационной системы финансового контроля. Информационное, программное и техническое обеспечение автоматизированной системы. Алгоритмы и модели работы базы данных, созданной в среде разработки Borland Delphi 7.0.
дипломная работа [1,2 M], добавлен 25.10.2013