- •Subversion — Википедия
- •[Править] Общие сведения [править] Возможности
- •[Править] Модель работы
- •[Править] Типы репозиториев
- •[Править] Доступ к репозиторию
- •[Править] Основные концепции [править] Файловая система
- •[Править] Имена файлов
- •[Править] Номера ревизий
- •[Править] Оперативная и стержневая ревизии
- •[Править] Операции над файловой системой
- •[Править] Фиксация изменений [править] Рабочая копия
- •[Править] Транзакции
- •[Править] Локальные и удалённые формы команд
- •[Править] Структура хранилища [править] Структура проекта в хранилище
- •[Править] Ветви
- •[Править] Метки
- •[Править] Свойства (properties)
- •[Править] Свойства объектов файловой системы
- •[Править] Свойства файлов
- •[Править] Свойства директорий
- •[Править] Свойства ревизий
- •[Править] Использование Subversion [править] Рабочий цикл
- •[Править] Ветвление
- •[Править] Создание ветвей
- •[Править] Работа с ветвями
- •[Править] Слияние [править] Копирование изменений между ветвями
- •[Править] Другие применения команды svn merge
- •[Править] Создание хранилища
- •[Править] Subversion и cvs [править] Сравнение
- •[Править] Миграция с cvs на Subversion [править] Преобразование репозитория
- •[Править] Отличия в использовании [править] Различия в работе с файлами
- •[Править] Адресация состояния хранилища
- •[Править] Внутренняя структура [править] Уровни
- •[Править] Конфигурация клиента
- •[Править] Проблемы при переименовании файлов
- •[Править] Слабая поддержка слияния ветвей
- •[Править] Невозможность удаления данных из хранилища
- •[Править] Дополнительное программное обеспечение
- •[Править] Краткое описание
- •[Править] Лицензирование:
- •История файла
- •Использование файла
[Править] Миграция с cvs на Subversion [править] Преобразование репозитория
Существует программа cvs2svn, предназначенная для преобразования репозитория CVS в готовый репозиторий Subversion (либо в репозиторий git) или в текстовый дамп, который можно затем импортировать в репозиторий при помощи утилитыsvnadmin. При этом cvs2svn сохраняет всю информацию, содержащуюся в репозитории CVS: ветви, метки, описания изменений, имена авторов, даты фиксации изменений. Кроме того, изменения в различных файлах, зафиксированные совместно, преобразуются в одну ревизию.
[Править] Отличия в использовании [править] Различия в работе с файлами
В CVS операции по перемещению (переименованию) и копированию файлов и директорий выполняются повторным добавлением объекта с новым именем и (при перемещении и переименовании) удалением старого объекта. При такой работе файлы и каталоги в хранилище создаются заново и теряют историю изменений. В Subversion для выполнения этих операций должны использоваться команды перемещения(moveилиmv) икопирования(copy). Их использование сохраняет историю изменений и позволяет избежать лишних операций (в особенности при операциях с директориями или даже ветками файловой системы).
В отличие от CVS, некоторые операции в рабочей копии (например, удаление и перемещение файла) Subversion выполняет самостоятельно. Описанные и другие отличия при работе с файлами рабочей копии просуммированы в следующей таблице (операция commit, там где она нужна в обоих случаях, опущена):
Операция |
CVS |
Subversion |
Заметки |
Удаление файла |
rm file cvs rm file |
svn rm file |
файл не нужно предварительно удалять вручную |
Удаление файлов по маске |
rm * cvs rm file1 file2 ... |
svn rm * |
файлы не нужно предварительно удалять вручную не нужно перечисления всех файлов |
Переименование/перемещение |
mv file1 file2 cvs rm file1 cvs add file2 |
svn mv file1 file2 |
файл не нужно перемещать вручную история файла сохраняется |
Копирование |
cp file1 file2 cvs add file2 |
svn copy file1 file2 |
файл не нужно копировать вручную история файла сохраняется (разветвляется) |
Добавление (создание) директории |
mkdir dir cvs add dir |
svn mkdir dir svn commit |
директорию можно не создавать вручную после добавления директории необходим commit |
Добавление директории с файлами |
cvs add dir cd dir cvs add file1 file2 |
svn add dir |
директория добавляется с содержащимися в ней файлами |
Переименование директории с файлами (без поддиректорий) |
mkdir dir2 cvs add dir2 mv dir1/* dir2 cvs rm dir1/file1 dir1/file2 ... cvs add dir2/* |
svn mv dir1 dir2 |
не нужно создавать и добавлять директории не нужно перемещать файлы вручную не нужно перечисления всех файлов история файлов сохраняется |
Переименование ветки файловой системы (директории с файлами и поддиректориями) |
повторять команды выше для каждого уровня вложенности или каждой поддиректории[36] |
svn mv dir1 dir2 |
см. выше не зависит от количества уровней и директорий |