системы контроля версий
TRANSCRIPT
![Page 1: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/1.jpg)
Курс: «Мануальное тестирование ПО»
Системы контроля версий. Что такое контроль версий и для чего он необходим. Системы контроля версий CVS, SVN, GIT, Mercurial.
![Page 2: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/2.jpg)
Что такое VCS? Система управления версиями ( Version
Control System, VCS) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.
![Page 3: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/3.jpg)
Какие задачи решает VCS?Архивации и восстановления - ведётся
история изменения файлов с возможностью обновления до указанного состояния;
Ведение истории – при каждом изменении пользователи вносят комментарии, где описывают, для чего были внесены изменения;
Создание веток (альтернативные реализации) – VCS позволяет создавать разные варианты одного документа, так называемые ветки, с общей историей изменений до точки ветвления и с разными - после неё.
![Page 4: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/4.jpg)
Резервные копии.
![Page 5: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/5.jpg)
Что нам дает использование VCS?
Полную уверенность в том, что файлы, которые мы получаем из системы, являются актуальными всегда, в любой момент времени.
Возможность получить требуемую версию с любого компьютера, который позволит подключиться к серверу.
Сохраняя файл в VCS, не нужно думать о том, что кто-то, работающий с этим же файлом, пересохранит и удалит изменения.
Для разработчиков программных продуктов использование системы также позволяет производить принятие/отклонение изменений, сделанных одним из разработчиков.
![Page 6: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/6.jpg)
Классификация VCS Централизованные / распределенные- в
централизованных системах контроля версий вся работа производится с центральным репозиторием, в распределённых- у каждого разработчика есть локальная копия репозитория.
Блокирующие/не блокирующие – блокирующие системы контроля версий позволяют наложить запрет на изменение файла, пока один из разработчиков работает над ним, в не блокирующих один файл может одновременно изменятся несколькими разработчиками.
Для текстовых данных/для бинарных данных – для VCS для текстовых данных очень важна поддержка слияния изменений, для VCS с бинарными данными важна возможность блокировки.
![Page 7: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/7.jpg)
Централизованные системы управления версиями
![Page 8: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/8.jpg)
Распределённые системы управления версиями
![Page 9: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/9.jpg)
Ежедневный цикл работы.
Обновление рабочей копии. Разработчик выполняет операцию обновления
рабочей копии (update) насколько возможно. Модификация проекта. Разработчик локально модифицирует проект,
изменяя входящие в него файлы в рабочей копии.
Фиксация изменений. Завершив очередной этап работы над
заданием, разработчик фиксирует (commit) свои изменения, передавая их на сервер. VSC может требовать от разработчика перед фиксацией выполнить обновление.
![Page 10: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/10.jpg)
ВетвлениеВетвь(branch ) — направление разработки,
независимое от других.Ветвь представляет собой копию части (как
правило, одного каталога) хранилища, в которую можно вносить свои изменения, не влияющие на другие ветви.
Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные — после неё.
Изменения из одной ветви можно переносить в другую.
Ствол(trunk, mainline, master) — основная ветвь разработки проекта.
![Page 11: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/11.jpg)
Ветвление
![Page 12: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/12.jpg)
Слияние
![Page 13: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/13.jpg)
Терминология working copy - рабочая (локальная) копия документов. repository, depot - хранилище документов — место, где система
управления версиями хранит все документы вместе с историей их изменения и другой служебной информацией.
revision - версия документа. Новые изменения(changeset) создают новую ревизию репозитория.
check-in, commit, submit - фиксация изменений. check-out, clone - извлечение документа из хранилища и
создание рабочей копии. update, sync - синхронизация рабочей копии до некоторого
заданного состояния хранилища ( в т.ч. и к более старому состоянию ,чем текущее).
merge, integration - cлияние — объединение независимых изменений в единую версию документа.
conflict - конфликтная ситуация, когда несколько пользователей сделали изменения одного и того же участка документа.
head - самая свежая версия (revision ) в хранилище.
![Page 14: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/14.jpg)
Разнообразие систем контроля версий.
![Page 15: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/15.jpg)
Краткое описание популярных 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: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/16.jpg)
Бесплатные VCS серверы
Есть много серверов, которые представляют открытые репозитории для совместной работы:
https://sourceforge.net/ -SVN, GIT, Mercurial, Bazaar, CVN репозитории.
https://github.com/- GIT,SVN репозитории.
https://bitbucket.org/ - GIT и Mercurial репозитории
и другие…
![Page 17: системы контроля версий](https://reader031.vdocuments.mx/reader031/viewer/2022022414/5884f5d01a28abf76f8b6e3d/html5/thumbnails/17.jpg)
ВОПРОСЫ
Thank You!