Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по Subversion.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
320 Кб
Скачать

Особенности Subversion

А теперь давайте подробнее рассмотрим Subversion. Данная система централизованная, то есть данные хранятся в едином хранилище. Хранилище может располагаться на локальном диске или на сетевом сервере.

Работа в Subversion мало отличается от работы в других централизованных системах управления версиями. Клиенты копируют файлы из хранилища, создавая локальные рабочие копии, затем вносят изменения в рабочие копии и фиксируют эти изменения в хранилище. Несколько клиентов могут одновременно обращаться к хранилищу. Для совместной работы над файлами в Subversion преимущественно используется модель копирование — изменение — слияние. Кроме того, для файлов, не допускающих слияние (различные бинарные форматы файлов), можно использовать модель блокирование — изменение — разблокирование.

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

Subversion предлагает два варианта организации репозиториев. Репозитории первого типа используют для хранения базы данных на основе Berkeley DB, репозитории второго типа — обычные файлы специального формата (доступ к данным организуется с помощью собственных библиотек, без использования сторонних баз данных).

Разработчики Subversion часто называют хранилище «файловой системой», поэтому второй тип получил название FSFS, то есть (версионированная) файловая система (англ. File System) поверх (обычной) файловой системы. Считается, что FSFS легче правильно настроить, она требует меньшего внимания от администратора.

Рабочая копия — это созданная клиентской программой Subversion локальная копия части данных из хранилища, содержащая помимо собственно данных некоторую служебную информацию (скрытые директории с именем .svn). Служебная информация необходима для правильного функционирования рабочей копии; что-либо менять в служебных данных нельзя. Минимальной единицей данных, которую можно получить из хранилища как рабочую копию, является директория (можно также извлечь директорию без поддиректорий, а потом докачивать их по мере необходимости).

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

Формально Subversion не накладывает каких-либо ограничений на файловую структуру проекта — она может быть какой угодно в рамках правил именования объектов файловой системы. Тем не менее, существуют “джентельменское соглашение”, что в корневой директории хранилища рекомендуется создать как минимум три поддиректории:

/.

Trunk – основной ствол

Branches - ветки

Tags - метки

Если (под)проектов в хранилище несколько, то такая структура поддиректорий создается для каждого (под)проекта:

/.

project1

trunk

branches

tags

project2

trunk

branches

tags

project3

trunk

branches

tags

Subversion использует «файловую» модель для реализации ветвей и меток, то есть ветвь является обычной директорией (даже можно сделать ветвь из одного файла, а не директории). Новая ветвь создаётся командой svn copy. Создание метки также производится командой svn copy, то есть технически не отличается от создания ветви. Отличие только в способе использования: предполагается, что никто не будет изменять данные в метке (фиксировать в неё изменения).