Top Banner
Курс: «Мануальное тестирование ПО» Системы контроля версий. Что такое контроль версий и для чего он необходим. Системы контроля версий CVS, SVN, GIT, Mercurial.
17

системы контроля версий

Apr 14, 2017

Download

Software

DressTester
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: системы контроля версий

Курс: «Мануальное тестирование ПО»

Системы контроля версий. Что такое контроль версий и для чего он необходим. Системы контроля версий CVS, SVN, GIT, Mercurial.

Page 2: системы контроля версий

Что такое VCS? Система управления версиями ( Version

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

Page 3: системы контроля версий

Какие задачи решает VCS?Архивации и восстановления - ведётся

история изменения файлов с возможностью обновления до указанного состояния;

Ведение истории – при каждом изменении пользователи вносят комментарии, где описывают, для чего были внесены изменения;

Создание веток (альтернативные реализации) – VCS позволяет создавать разные варианты одного документа, так называемые ветки, с общей историей изменений до точки ветвления и с разными - после неё.

Page 4: системы контроля версий

Резервные копии.

Page 5: системы контроля версий

Что нам дает использование VCS?

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

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

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

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

Page 6: системы контроля версий

Классификация VCS Централизованные / распределенные- в

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

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

Для текстовых данных/для бинарных данных – для VCS для текстовых данных очень важна поддержка слияния изменений, для VCS с бинарными данными важна возможность блокировки.

Page 7: системы контроля версий

Централизованные системы управления версиями

Page 8: системы контроля версий

Распределённые системы управления версиями

Page 9: системы контроля версий

Ежедневный цикл работы.

Обновление рабочей копии. Разработчик выполняет операцию обновления

рабочей копии (update) насколько возможно. Модификация проекта. Разработчик локально модифицирует проект,

изменяя входящие в него файлы в рабочей копии.

Фиксация изменений. Завершив очередной этап работы над

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

Page 10: системы контроля версий

ВетвлениеВетвь(branch ) — направление разработки,

независимое от других.Ветвь представляет собой копию части (как

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

Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные — после неё.

Изменения из одной ветви можно переносить в другую.

 Ствол(trunk, mainline, master) — основная ветвь разработки проекта.

Page 11: системы контроля версий

Ветвление

Page 12: системы контроля версий

Слияние

Page 13: системы контроля версий

Терминология working copy - рабочая (локальная) копия документов. repository, depot - хранилище документов — место, где система

управления версиями хранит все документы вместе с историей их изменения и другой служебной информацией.

revision -  версия документа. Новые изменения(changeset) создают новую ревизию репозитория.

check-in, commit, submit - фиксация изменений. check-out, clone - извлечение документа из хранилища и

создание рабочей копии. update, sync - синхронизация рабочей копии до некоторого

заданного состояния хранилища ( в т.ч. и к более старому состоянию ,чем текущее).

merge, integration - cлияние — объединение независимых изменений в единую версию документа.

conflict  - конфликтная ситуация, когда несколько пользователей сделали изменения одного и того же участка документа.

head - самая свежая версия (revision ) в хранилище.

Page 14: системы контроля версий

Разнообразие систем контроля версий.

Page 15: системы контроля версий

Краткое описание популярных VCS

Git (http://git-scm.com/) - распределенная система контроля версий, разработанная Линусом Торвальдсом. Изначально Git предназначалась для использования в процессе разработки ядра Linux, но позже стала использоваться и во многих других проектах — таких, как, например, X.org и Ruby on Rails, Drupal. На данный момент Git является самой быстрой распределенной системой, использующей самое компактное хранилище ревизий.

Mercurial (http://www.selenic.com/mercurial/) - распределенная система, написанная на языке Python с несколькими расширениями на C. Из использующих Mercurial проектов можно назвать, такие, как, Mozilla и MoinMoin.

Bazaar (http://bazaar-vcs.org/) - система разработка которой поддерживается компанией Canonical — известной своими дистрибутивом Ubuntu и сайтом https://launchpad.net/. Система в основном написана на языке Python и используется такими проектами, как, например, MySQL.

Monotone (http://monotone.ca/) - система написанная на C++ и использующая SQLite как хранилище ревизий.

Page 16: системы контроля версий

Бесплатные VCS серверы

Есть много серверов, которые представляют открытые репозитории для совместной работы:

https://sourceforge.net/ -SVN, GIT, Mercurial, Bazaar, CVN репозитории.

https://github.com/- GIT,SVN репозитории.

https://bitbucket.org/ - GIT и Mercurial репозитории

и другие…

Page 17: системы контроля версий

ВОПРОСЫ

Thank You!