Интернет магазин китайских планшетных компьютеров



Компьютеры - Subversion - Использование Subversion

01 мая 2011


Оглавление:
1. Subversion
2. История
3. Общие сведения
4. Основные концепции
5. Использование Subversion
6. Subversion и CVS
7. Внутренняя структура
8. Недостатки
9. Дополнительное программное обеспечение



Рабочий цикл

Типичная итерация рабочего цикла с Subversion включает следующие этапы.

  • Обновление рабочей копии из хранилища или ее создание.
  • Изменение рабочей копии. Изменения директорий и информации о файлах производится средствами Subversion, в изменении же файлов Subversion никак не задействован — изменения производятся программами, предназначенными для этого:
    • новые файлы и директории нужно добавить, то есть передать под управление версиями;
    • если файл или директорию в рабочей копии нужно удалить, переименовать, переместить или скопировать, необходимо использовать средства Subversion;
    • просмотр состояния рабочей копии и локальных изменений;
    • любые локальные изменения, если они признаны неудачными, можно откатить.
  • При необходимости — дополнительное обновление, для получения изменений, зафиксированных в хранилище другими пользователями и слияния этих изменений со своими.
  • Фиксация своих изменений в хранилище.

Ветвление

Ветвление является важным аспектом работы систем управления версиями, поскольку типичные приёмы управления версиями подразумевают использование ветвей. Subversion обладает достаточно развитыми возможностями для ветвления и слияния.

Рис. 3. Пример эволюции ветвей в Subversion

На рис. 3 условно показан пример эволюции ветвей в хранилище. Зелёным цветом показана основная линия разработки проекта, жёлтым — ветви, синим — метки, пурпурным — ветвь, разработка которой прекращена. Красными стрелками показаны слияния изменений.

Создание ветвей

Новая ветвь создаётся командой svn copy, которая создаёт в хранилище копию с наследованием истории ревизий источника. Для создания ветвей всегда следует использовать «удалённую» форму команды svn copy, например:

svn copy http://.../trunk/dir http://.../branches/branch_name -m "Creating a branch of dir"

Полученная копия будет ветвью. В дальнейшем изменения, сделанные на ветви, могут быть внесены в источник, из которого была создана эта ветвь, такое распространение изменений называется слияние.

Операции копирования в Subversion дешёвые, то есть требуют небольшого фиксированного количества времени и дискового пространства. Хранилище спроектировано таким образом, что при любом копировании происходит не дублирование данных, а создание ссылки на источник, однако этот механизм чисто внутренний — с точки зрения пользователя происходит именно создание копии. Благодаря высокой эффективности создания ветвей их можно создавать настолько часто, насколько это необходимо.

Работа с ветвями

В целом работа на ветви не отличается от работы на основной линии разработки. Специфичные команды требуются только для действий, в которых задействовано более одной ветви. К таким командам относятся:

  • svn switch — переключение рабочей копии на другую ветвь — используется для того, чтобы переключить имеющуюся рабочую копию на другую ветвь. В результате переключения служебные данные рабочей копии изменяются так, как будто эта рабочая копия получена операцией svn checkout из той ветви, на которую она переключена. При этом объём сетевого трафика меньше, чем при svn checkout, так как передается только разница между данными в рабочей копии и целевой ветвью;
  • svn merge — копирование набора изменений между ветвями — используется для слияния.

Как правило, полный цикл работы с ветвями включает следующие этапы:

  • создание ветви;
  • переключение имеющейся рабочей копии на ветвь или создание новой рабочей копии путём закачки;
  • изменение файлов и директорий в рабочей копии, фиксация этих изменений;
  • копирование в ветвь свежих изменений из родительской ветви, сделанных после ветвления;
  • копирование изменений с ветви в родительскую ветвь;
  • удаление ветви, если её жизненный цикл закончен.

Слияние

Копирование изменений между ветвями

Слияние в Subversion — это применение к ветви набора изменений, сделанных на другой ветви. Для осуществления слияния необходимо использовать команду svn merge — она применяет набор изменений к рабочей копии; затем нужно зафиксировать внесённые изменения.

Терминология, связанная со слиянием, несколько запутана. Термин слияние является не совсем точным, поскольку как такового объединения ветвей не происходит. Кроме того, не следует отождествлять слияние и команду svn merge: во-первых, для слияния нужно выполнить разрешение конфликтов и фиксацию, во-вторых, применение svn merge не ограничивается слиянием.

Другие применения команды svn merge

Команду svn merge можно использовать не только для слияния. Фактически команда производит внесение в рабочую копию изменений, равных разнице между двумя директориями или файлами в хранилище, поэтому svn merge является универсальным средством для переноса изменений. Можно привести такие примеры использования команды svn merge:

  • откат уже зафиксированных изменений, в том числе целого диапазона ревизий;
  • удобный просмотр разницы между двумя состояниями репозитория.

Создание хранилища

Для создания хранилища используется команда svnadmin create. Эта операция создаст пустое хранилище в указанной директории.



Просмотров: 8843


<<< Stellarium
Sun Grid Engine >>>