
- •Система контроля версий
- •Системы контроля версий (Version Control System, VCS)
- •Система контроля версий (VCS) умеет:
- •Хранилище (репозиторий)
- ••Хранилище является разновидностью файл-сервера, однако не совсем обычного.
- •Назначение
- •История
- •Основные события истории развития Subversion:
- ••В настоящее время Subversion используется многими сообществами разработчиков открытого программного обеспечения.
- •Возможности SVN
- •Возможности SVN (продолжение)
- •Атеперь для «чайников»
- •Архитектура SVN
- •Типы репозиториев
- •Модель работы
- •Всвязи с тем, что разработчики работают только с локальными копиями, могут возникать трудности,
- •Проблема разделения файлов
- •Проблема потери изменений (иллюстрация)
- •Модель Блокирование-Изменение-Разблокирование
- •Проблемой модели блокирование-изменение-разблокирование является то, что она немного ограниченная и часто доставляет неудобства
- •Модель Копирование-Изменение-Слияние
- •Модель копирование-изменение-слияние
- •Конфликт
- •Вывод
- •Витоге
- •Список основных терминов
- •Список основных терминов (продолжение)
- •Структура хранилища (репозитория)
- •Основные концепции
- •Файловая система
- ••С точки зрения пользователя хранилище Subversion представляет собой «двумерную» файловую систему.
- •Имена файлов
- •Операции над файловой системой
- •Операции над файловой системой
- •Операции над файловой системой
- •Операции над файловой системой
- •Фиксация
- •Рабочая копия
- ••Рабочая копия в Subversion всегда соответст- вует ровно одной директории хранилища.
- ••Ваша рабочая копия - это ваше личное рабочее пространство.
- •Предположим, что есть хранилище,
- •Для того, чтобы создать рабочую копию, нужно получить какой-либо из подкаталогов хранилища.
- •Транзакции
- ••Изоляция гарантирует, что промежуточные состояния хранилища внутри транзакции не видны другим транзакциям и
- •Клиент командной строки Subversion
- •Команды svn
- •Типичная итерация рабочего цикла с Subversion:
- •- если файл или директорию в рабочей копии нужно удалить, переименовать, переместить
- •Краткий справочник svn
- •Создание рабочей копии
- •Изменение файлов и директорий в рабочей копии
- •svn move
- •svn copy
- •svn update
- •svn commit
- •svn revert
- •svn add file_name
- •svn status
- •Цикл работы с ветвями
svn move |
(svn mv) |
Синтаксис
svn move SRC DST
Описание
Перемещает файл или директорий в рабочую копию или репозиторий.
svn copy |
(svn cp) |
Синтаксис
svn copy SRC DST
Описание
Копирует файл в рабочей копии или в хранилище. SRC и DST могут быть путями как внутри рабочей копии, так и URL внутри хранилища.
svn update |
(svn up) |
Синтаксис
svn update [PATH...]
Описание
Обновляет содержимое локальной копии до самой последней версии из репозитория или до исходной версии, если ревизий не было.
Можно получить более раннюю версию файла используя параметр –r.
svn update -r номер_ревизии имя_файла
svn commit |
(svn ci) |
(«ci» сокращение от «check in», a не «co» - сокращения для «checkout»)
Синтаксис
svn commit file_name
Описание
Фиксирует сделанные изменения рабочей копии в хранилище (отправляет файл/папку в репозиторий). Изменяет как рабочую копию, так и хранилище. Порядковый номер отправки данных в репозиторий присваивается соответствующей ревизии.
svn revert
Синтаксис
svn revert file_name
Описание
«Откатывает» локальные изменения файла и разрешает конфликтные ситуации (выгружает из репозитория последний залитый командой commit файл).
svn revert -R - откатывает все локальные изменения файлов
svn add file_name |
- добавление файла в |
репозиторий. |
|
svn diff file_name |
- показывает локальные |
изменения в файле построчно.
svn diff -r N:M file_name - то же, но между ревизиями N и M.
svn list URL - просмотр каталога/каталогов репозитория. URL-адрес представляет собой строку вида:
протокол://имя сервера/путь (svn://eniac/sandbox)
svn log file_name - список ревизий, в которых изменялся данный файл.
svn status |
- отображение изменений |
в локальной копии относительно |
|
репозитория. |
|
svn log file_name |
- список ревизий с |
комментариями. |
|
svn rename old_f_n new_f_n - переименование файла в репозитории.
svn cat -r N file_name - отображение содержимого файла из данной ревизии.
svn help command_name |
- справка по |
команде |
|
Цикл работы с ветвями
•создание ветви (svn сору);
•переключение рабочей копии на другую ветвь (svn switch) или создание новой рабочей копии путём закачки (svn checkout).
•svn switch - используется для того, чтобы переключить имеющуюся рабочую копию на другую ветвь. В результате переключения служебные данные рабочей копии изменяются так, как будто эта рабочая копия получена операцией svn checkout из той ветви, на которую она переключена.
•объём сетевого трафика меньше, чем при svn checkout, так как передается только разница между данными в рабочей копии и целевой ветвью;
•изменение файлов и директорий в рабочей копии, фиксация этих изменений (svn commit);
•копирование в ветвь свежих изменений из родительской ветви, сделанных после ветвления (svn merge, svn commit).
•svn merge - копирование набора изменений между ветвями - используется для слияния. удаление ветви (svn delete), если её жизненный цикл закончен.