Глава 4. Расширенное использование

Метки и ветви

Здесь мы обсуждаем только технические аспекты меток и ветвей. Если вы - только пользователь, у вас не должно возникнуть проблем. Однако если вы администратор хранилища, вы сначала должны разобраться в нетехнических проблемах, которые сопутствуют ветвлению, чтобы получить представление об отнимающее много времени и подверженное ошибкам обслуживание различных ветвей. Приложение содержит некоторые ссылки по этой теме.

Простая метка - что вы делаете при релизе, так что вы могли вернуться к этому состоянию проекта. Меткам обычно дают имена состоящие из названия проекта и номера версии. Например Cervisia 1.0 доступен по метке CERVISIA_1_0. Cervisia соблюдает строгие правила CVS о допустимых именах меток. Она должна начинаться с символа и может содержать символы, цифры, дефисы и подчёркивания.

Обычно, вы отмечаете целый проект (хотя CVS позволяет вам отмечать только подмножество). Отметьте начальный каталог в главном окне и выберите в меню РасширенныйМетка/Ветвь... . Теперь введите имя метки, и нажмите Enter.

Создание ветви не намного сложнее: В диалоге метки, выберите параметр Создать ветвь с этой метки. Вы также можете удалить существующую метку: Выберите в меню РасширенныйУдалить метку...

Существует несколько способов обновить проект до некоторого состояния.

  • Вы можете выполнить обновление до некоторой метки. Используйте для этого меню Расширенный Обновить до метки/даты. Этаже процедура используется для обновления до ветви. Команда запущенная Cervisia

    cvs update -r метка

  • Вы можете обновить до некоторой даты. Это бывает полезно, если ошибка внесена между двумя релизами, и вы знаете приблизительное время её внесения. Вы можете перейти в некоторую дату выбрав в меню Расширенный Обновить до метки/даты и включив опцию обновить до даты. В поле ниже, вы можете указывать широкое разнообразие форматов даты. Один возможный вариант - yyyy-mm-dd где yyyy - год, mm - месяц (цифрами) и dd - день месяца. Альтернативно можно использовать некоторые английские фразы подобно yesterday или2 weeks ago. При использовании этой опции Cervisia выполняет команду

    cvs update -D дата

  • Обе опции выше делают метку или дату 'липкой'. т.е. вы не сможете передать модификации этих файлов (если это не метка ветви). Чтобы вернуться на ветвь с именем HEAD, используйте в меню РасширенныйОбновить до HEAD Это приведёт к команде

    cvs update -A

Рисунок 4.1. Снимок экрана диалога обновления до метки Cervisia

Снимок экрана диалога аннотаций Cervisia

Другой аспект использования ветвления - объединение модификаций из ветки к текущей ветви. Если вы собираетесь сделать это, выберите в меню РасширенныйОбъединить... . Диалог, который появиться далее, предоставит вам два варианта:

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

cvs update -j метка ветви

Другая возможность состоит в том, что вы можете объединить только модификации, сделанные между двумя метками на ветви. Это обычно случается, когда вы объединяете модификации одной ветви к метке со стволом несколько раз. В этом случае отметьте параметр Объединить модификации и введите (в правильном порядке) две корректные метки. Это выполнить команду

cvs update -j метка ветви1 -j метка ветви2