СКВ. Словарь терминов
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
repository репозитарий, хранилище;
working copy рабочая (локальная) копия файлов;
revision версия файлов. Новые изменения changeset создают новую ревизию в репозитарии;
head, tip самая последняя (свежая) ревизия в хранилище;
13 / 30
СКВ. Словарь терминов. Продолжение
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
check-in, commit фиксация изменений;
check-out, clone извлечение документов из хранилища, создание рабочей копии и возможно локального репозитария;
update, sync синхронизация/обновление рабочей копии с/до заданной ревизии в хранилище;
conflict конфликт, несколько пользователей изменили один и тот же участок документа;
merge слияние независимых изменений с возможным разрешением конфликтов.
14 / 30
Ветвление
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
Ветвь представляет собой копию части хранилища (например, одного каталога), в которую можно вносить изменения, не влияющие на другие ветви. Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные после неё.
15 / 30
Структура репозитария
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
project1
trunk branches
branch_1
tags
tag_1 tag_2
16 / 30
Пример централизованной СКВ Subversion
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
Subversion (также известная как “SVN”) свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc.
c Википедия
17 / 30
Двумерное представление файловой системы в Subversion
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
18 / 30
Рабочий цикл SVN
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
обновление рабочей копии из хранилища (svn update) или ее создание (svn checkout);
изменение рабочей копии:
добавить (передать под управление версиями) новые файлы, директории svn add;
удалить, переместить, скопировать файлы, директорииsvn delete, svn move, svn copy;
просмотр состояния рабочей копии и локальных (ещё не зафиксированных) изменений (svn info, svn status, svn di );
любые локальные изменения, если они признаны неудачными, можно откатить (svn revert).
19 / 30
Рабочий цикл SVN. Продолжение
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
при необходимости дополнительное обновление, для получения изменений, зафиксированных в хранилище другими пользователями и слияния этих изменений со своими (svn update);
фиксация своих изменений (и/или результатов слияния) в хранилище (svn commit).
20 / 30
Пример работы с SVN
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
В консоли
$ svn co http://projects.com/svn/myproject –username user $ cd myproject
..изменяем проект.. $ svn log
$ svn st
$ svn add newfile.cpp $ svn rm oldfile.cpp
$ svn commit -m"Mega enhancement"
..через некоторое время.. $ svn up
21 / 30
Пример распределённой СКВ Mercurial
Системы
управления
версиями
Данилов И. Г.
ассистент каф. МОП ЭВМ
Mercurial (англ. ртутный, подвижный), он же Hg кроссплатформенная распределённая система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода
c Википедия
22 / 30