Код любой задачи должен быть оформлен в виде ветки приватного mercurial-репозитория в сервисе BitBucket ( https://bitbucket.org/ ). Формат имени репозитория: YYYY.CSC.CG.Surname, где YYYY – текущий год, а фамилия написана латиницей. Файл решения Visual Studio должен лежать в корневой папке репозитория и иметь название csc.cg.sln. Пример правильного названия репозитория/файла решения: 2015.CSC.CG.Petrov/csc.cg.sln.
Отправка наработок преподавателю состоит из следующих шагов:
- если не было сделано ранее - добавить преподавателя ( пользователь – GeneralGDA ) в список авторизованных на редактирование пользователей репозитория;
- слить готовые к сдаче наработки в ветку «delivery-X», где X – это номер задачи;
- протолкнуть изменения в репозитории на сервер BitBucket;
- далее возможны два сценария развития ситуации:
- исходные файлы решения проходят автоматические проверки на сервере приёма задач, в следствие чего преподаватель получает уведомление о готовности задачи к проверке;
- исходные файлы решения не проходят одну или более автоматических проверок, студент при верных настройках своей учётной записи на сервере приёма задач, получает уведомление о данном факте;
При желании можно просить преподавателя провести аудит кода до полной готовности задачи. Для этого необходимо:
- создать (при необходимости) новую ветку в репозитории;
- формат audit-*, где * – произвольный набор символов, допустимый для имени ветки;
- слить готовые к аудиту наработки в означенную выше ветку;
- протолкнуть изменения в репозитории на сервер BitBucket;
- запустить сборку на сервере приёмки (в отличие от ветки delivery, сборки остальных автоматом не стартуют);
- при успешном прохождении автоматических проверок на сервере приёма задач преподаватель получит уведомление о необходимости рецензирования кода.
Неформализуемым требованием является наличие признаков самостоятельного выполнения задачи в репозитории – последовательность фиксаций (a.k.a. commit) промежуточных этапов выполнения задачи. Репозиторий с одной единственной фиксацией в ночь перед последним днём сдачи автоматом признаётся списанным с последующим правом преподавателя отказаться ставить оценку. Неплохой схемой представляется фиксация изменений по окончанию очередного подхода к работе над задачей: «Поработал? Сделай commit!».
Инструменты для работы с системой контроля версий (a.k.a. vcs) Mercurial:
- TortoiseHg – классический клиент vcs Mercurial с интеграцией в проводник Windows;
- SourceTree – стильный-модный-молодёжный клиент vcs Mercurial;
- VisualHg – интеграция vcs Mercurial со средой Visual Studio.
Адрес сервера приёма задач и данные для авторизации на нём высылаются студентам в индивидуальном порядке.