- •Subversion — Википедия
- •[Править] Общие сведения [править] Возможности
- •[Править] Модель работы
- •[Править] Типы репозиториев
- •[Править] Доступ к репозиторию
- •[Править] Основные концепции [править] Файловая система
- •[Править] Имена файлов
- •[Править] Номера ревизий
- •[Править] Оперативная и стержневая ревизии
- •[Править] Операции над файловой системой
- •[Править] Фиксация изменений [править] Рабочая копия
- •[Править] Транзакции
- •[Править] Локальные и удалённые формы команд
- •[Править] Структура хранилища [править] Структура проекта в хранилище
- •[Править] Ветви
- •[Править] Метки
- •[Править] Свойства (properties)
- •[Править] Свойства объектов файловой системы
- •[Править] Свойства файлов
- •[Править] Свойства директорий
- •[Править] Свойства ревизий
- •[Править] Использование Subversion [править] Рабочий цикл
- •[Править] Ветвление
- •[Править] Создание ветвей
- •[Править] Работа с ветвями
- •[Править] Слияние [править] Копирование изменений между ветвями
- •[Править] Другие применения команды svn merge
- •[Править] Создание хранилища
- •[Править] Subversion и cvs [править] Сравнение
- •[Править] Миграция с cvs на Subversion [править] Преобразование репозитория
- •[Править] Отличия в использовании [править] Различия в работе с файлами
- •[Править] Адресация состояния хранилища
- •[Править] Внутренняя структура [править] Уровни
- •[Править] Конфигурация клиента
- •[Править] Проблемы при переименовании файлов
- •[Править] Слабая поддержка слияния ветвей
- •[Править] Невозможность удаления данных из хранилища
- •[Править] Дополнительное программное обеспечение
- •[Править] Краткое описание
- •[Править] Лицензирование:
- •История файла
- •Использование файла
[Править] Адресация состояния хранилища
В Subversion для адресации состояния хранилища не обязательно создавать метки или использовать дату/время, в простых случаях (например, для получения версии после определенной фиксации) будет проще указать нужный номер ревизии.
[Править] Внутренняя структура [править] Уровни
Subversion спроектирован как набор библиотек, разделённых на несколько уровней. Каждый из них выполняет конкретную задачу и позволяет разработчикам создавать свои собственные инструменты, в зависимости от сложности и задачи.
Fs
Самый низкий уровень; реализует версионированную файловую систему, которая и хранит данные.
Repos
Уровень хранилища, реализованного на файловой системе. На этом уровне реализовано множество вспомогательных функций, а также поддерживается запуск обработчиков (англ.hooks), то есть скриптов, которые запускаются при наступлении некоторого события. Вместе уровни Fs и Repos составляютинтерфейс файловой системы.
mod_dav_svn
Обеспечивает WebDAV/Delta-V-доступ через Apache 2.
Ra
Реализует доступ к хранилищу (и локальный, и удалённый). Начиная с этого уровня на хранилище можно ссылаться по URL, то есть
file:///path/для локального доступа,
http://host/path/илиhttps://host/path/для доступа через WebDAV, или
svn://host/path/илиsvn+ssh://host/path/для доступа через протокол SVN.
Client, Wc
Самый высокий уровень. Абстрагирует доступ к хранилищу и обеспечивает выполнение типичных задач клиента, таких как аутентификация пользователя или сравнение версий. Client использует библиотеку Wc для управления локальной рабочей копией.
[Править] Конфигурация клиента
Стандартная клиентская утилита Subversion — SVN, конфигурируется переменными окружения и INI-файлами, создаваемыми в домашнем каталоге пользователя в подкаталоге.subversion(расположение конфигурации в Windows-системах, в файлах или реестре, зависит от системных настроек). В конфигурации SVN также кеширует SSL-сертификаты, логины, пароли и т. п. (если это не запрещено в конфигурации) для доступа к серверам Subversion.
Cодержимое каталога .subversion:
файл servers— содержит информацию о способах сетевого подключения к удалённому репозиторию;
файл config— содержит прочую конфигурационную информацию[37]
каталог auth— содержиткешсерверов, сертификатов, логинов и паролей
файл README.txt— документация по конфигурированию SVN
[Править] Проблемы при переименовании файлов
Subversion не всегда может правильно обработать операции переименования файлов, если одновременно с переименованием изменяется и содержимое файла. Проблемы могут также возникнуть, если файл, переименованный в локальной копии, кто-то другой изменил в хранилище. Часть этих проблем исправлена в версии 1.5, однако это решение пока не полное.[38]
[Править] Слабая поддержка слияния ветвей
Также слабым местом Subversion считают операции слияния веток. До версии 1.5 все такие операции пользователям приходилось отслеживать вручную, с помощью подробных записей в журнале изменений. Начиная с версии 1.5 появилась базовая поддержка автоматического отслеживания слияний, которую разработчики планируют улучшить в последующих релизах[39]. В настоящее время Subversion достаточно хорошо поддерживает типовые сценарии слияния; в более сложных случаях возможны проблемы. Рекомендуется[40]организовать рабочий процесс так, чтобы избежать проблемных сценариев. Слияние переименованных файлов и директорий не поддерживается.