- •Subversion — Википедия
- •[Править] Общие сведения [править] Возможности
- •[Править] Модель работы
- •[Править] Типы репозиториев
- •[Править] Доступ к репозиторию
- •[Править] Основные концепции [править] Файловая система
- •[Править] Имена файлов
- •[Править] Номера ревизий
- •[Править] Оперативная и стержневая ревизии
- •[Править] Операции над файловой системой
- •[Править] Фиксация изменений [править] Рабочая копия
- •[Править] Транзакции
- •[Править] Локальные и удалённые формы команд
- •[Править] Структура хранилища [править] Структура проекта в хранилище
- •[Править] Ветви
- •[Править] Метки
- •[Править] Свойства (properties)
- •[Править] Свойства объектов файловой системы
- •[Править] Свойства файлов
- •[Править] Свойства директорий
- •[Править] Свойства ревизий
- •[Править] Использование Subversion [править] Рабочий цикл
- •[Править] Ветвление
- •[Править] Создание ветвей
- •[Править] Работа с ветвями
- •[Править] Слияние [править] Копирование изменений между ветвями
- •[Править] Другие применения команды svn merge
- •[Править] Создание хранилища
- •[Править] Subversion и cvs [править] Сравнение
- •[Править] Миграция с cvs на Subversion [править] Преобразование репозитория
- •[Править] Отличия в использовании [править] Различия в работе с файлами
- •[Править] Адресация состояния хранилища
- •[Править] Внутренняя структура [править] Уровни
- •[Править] Конфигурация клиента
- •[Править] Проблемы при переименовании файлов
- •[Править] Слабая поддержка слияния ветвей
- •[Править] Невозможность удаления данных из хранилища
- •[Править] Дополнительное программное обеспечение
- •[Править] Краткое описание
- •[Править] Лицензирование:
- •История файла
- •Использование файла
[Править] Типы репозиториев
Subversion предлагает два варианта организации репозиториев[25]. Репозитории первого типа используют для хранениябазы данныхна основеBerkeley DB, репозитории второго типа — обычныефайлыспециальногоформата(доступ к данным организуется с помощью собственных библиотек, без использования сторонних баз данных). Разработчики Subversion часто называют хранилище «файловой системой», поэтому второй тип получил название FSFS, то есть (версионированная)файловая система(англ.File System) поверх (обычной) файловой системы.
Оба типа репозиториев обеспечивают достаточную надёжность при правильной организации[26](Berkeley DB использует блокировки файлов, поэтому её нельзя использовать на некоторых сетевых файловых системах, не поддерживающих блокировок), каждая из них обладает своими преимуществами и недостатками. Считается, что FSFS легче правильно настроить, она требует меньшего внимания от администратора. Кроме того, до релиза 1.4 хранилища, использующие Berkeley DB могли при определённых условиях оказаться в так называемом заклиненном (англ.wedged) состоянии; требовалось вмешательство администратора для восстановления его работоспособности. Начиная с релиза 1.2 для новых хранилищ по умолчанию используется FSFS.
[Править] Доступ к репозиторию
Subversion предоставляет следующие способы доступа к репозиторию:
прямой доступ к репозиторию на диске (на локальной или сетевой файловой системе)
удалённый доступ по протоколу WebDAV/DeltaVповерхHTTP(илиHTTPS) с использованием модуляmod_dav_svnдля веб-сервераApache 2
удалённый доступ с использованием собственного протокола SVN:
на выделенном сетевом соединении (по умолчанию на TCP-порту 3690)
через стандартный ввод-вывод (в том числе через средства удаленного CLI, напримерSSH)
Все эти способы могут быть использованы для работы с репозиториями обоих типов (FSFS и Berkeley DB). Для доступа к одному и тому же репозиторию могут одновременно использоваться разные способы.
[Править] Основные концепции [править] Файловая система
Рис. 1
. Двумерное представление файловой системы в Subversion
С точки зрения пользователя хранилище Subversion представляет собой «двумерную» файловую систему. Объекты в хранилище (файлыидиректории) идентифицируются двумя «координатами»:именеминомером ревизии. Другими словами, хранилище представляет собоймассивмгновенных снимков (ревизий) дерева файлов и директорий, индексируемый номером ревизии. Каждый такой снимок — обычная (одномерная) файловая система.
При необходимости указания на конкретную ревизию объекта используется запись вида: имя@ревизия, например,/main.c@29— файл /main.c в ревизии 29. Такое указание ревизии, используемое для уточнения имени, называетсястержневая ревизия(англ.peg revision).
На рис. 1 показано графическое представление файловой системы: вертикальная ось соответствует множеству имён, горизонтальная — множеству ревизий.
[Править] Имена файлов
Имя объекта файловой системы в Subversion образуется по тем же правилам, что и в UNIX-подобных операционных системах: существует только одна корневая директория, элементы пути разделяются косой чертой(«/»). Объектами файловой системы являютсяфайлыидиректории(а такжесимволические ссылки, которые эмулируются из обычных файлов путём установки атрибутаsvn:special).