Учебная лаборатория НГУ-Parallels - Написать нам Печать
LogoГлавнаяЛетняя практикаПроектыСеминарыСпецкурсыПубликацииДокументация
Регламент работы с репозитарием CVS

0. Принципы

Регламент необходим для упрощения процесса групповой разработки программного обеспечения.

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

Текущая (разрабатываемая) ветвь состоит из модулей, желательно (но не обязательно) размещаемых в отдельных каталогах. Модуль состоит из одного или нескольких файлов исходных текстов и обычно соответствует модулю логической декомпозиции программы. Каждый из модулей принадлежит одному из разработчиков. Все коммиты в этот модуль осуществляются только с разрешения этого разработчика, в норме - самим этим разработчиком. Разрешение конфликтных ситуаций возлагается на лидера группы.

В комментариях в шапке каждого файла исходного текста должно быть указано, к какому модулю он относится и кто за него отвечает (фамилия и e-mail). При передаче файла от одного разработчика к другому в комментариях должна сохраняться история, когда, от кого и к кому была совершена передача.

Создавать дополнительные ветви настоятельно не рекомендуется; это делается только в исключительных ситуациях и только с разрешения лидера группы, после взвешивания всех возможных альтернатив.

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

1. Расположение, доступ и администрирование.

Репозитории находится на сервере swsoft.nsu.ru; CVSROOT для локального доступа :local:/home/cvs/%PROJECTNAME%, CVSROOT для доступа по сети :pserver:swsoft.nsu.ru:/home/cvs/%PROJECTNAME%, имя пользователя и пароль совпадают с именем и паролем Unix-пользователей swsoft.

При работе в Linux необходимо использовать cvs 1.11, аналогичный установленному на swsoft. При работе в Windows, допускается использование как WinCVS, так и консольной версии CVS. Рекомендуется использовать версии, дистрибутивы которых находятся в каталоге \\swsoft\soft\CVS; при размещении там новых версий будет рассылаться анонс.

Хорошая русскоязычная документация по работе с CVS может быть найдена по адресу http://cs.mipt.ru/docs/comp/rus/os/unix/software/develop/gnu/cvs/index.html.

Администратором всех репозиториев является Алексей Романенко, arom[at]ccfit.nsu.ru; через него необходимо решать все вопросы, связанные с созданием репозиториев и обеспечением доступа новых пользователей к существующим репозиториям.

2. Правила.

  1. Коммитить можно только код, который компилируется.
  2. CVS может коммитить несколько файлов за один раз. Делайте коммиты атомарно, т.е. если вносимое вами изменение затрагивает несколько файлов, в том числе и в разных модулях, все эти файлы должны быть включены в один коммит.
  3. Каждый коммит должен быть снабжен осмысленным комментарием, из которого должно быть ясно, кем и зачем были внесены соответствующие изменения.
  4. Не рекомендуется объединять в один коммит несколько логически несвязанных изменений. Это допускается только для небольших изменений и только в зоне ответственности одного разработчика.
  5. Перед внесением изменений в код, даже принадлежащий к вашей зоне ответственноси, обязательно сделайте Update.
  6. Обновления всех используемых вами модулей должны делаться как минимум ежедневно; при изменениях межмодульных интерфейсов допускаются и даже рекомендуются более частые обновления.
  7. При необходимости внести изменения в чужую зону ответственности, необходимо согласовать их (и порядок их внесения) с ответственным разработчиком или, при его недоступности, с лидером проекта.
  8. Изменения, затрагивающие зоны ответственности трех или более разработчиков, и порядок их внесения, обязательно согласуются с лидером проекта.