Основная единица организации кода на Gitlab это проект. Проект это пара из основного репозитория, связанного репозитория для Wiki, и описание различных интеграций с внешними сервисами и инструментам.
Gitlab позволяет иметь произвольное количество уровней иерархии для "директории", в которой будет находиться проект:
- Группа
- Подгруппа1
- Подгруппа подгруппы 1
- Проект
- Проект подгруппы 1...
- Подгруппа подгруппы 1
- Подгруппа1
Мы предлагаем следующую схему организации курсов:
-
Название-курса
/ gitlab-группа.- Если есть "подкурс", то
название-подкурса-[fall|spring]-YYYY
/ gitlab-подгруппа. Иначе можно просто[fall|spring]-YYYY
. Например, есть разные версии курса "Языки программирования" на втором году обучения и они различаются в зависимости от факультета -- это подкурсы.-
Один проект с именем
main
, содержащий основные материалы по курсу: организационную информацию, конспекты лекций, ссылки на дополнительные материалы и т.д. -
По одному проекту на каждую лабораторную работу; студенты могут делать их fork'и.
Для каждого задания используйте имя начинающееся на
assignment-N-
, где N это номер семинара (опционально). -
По одному проекту на каждое практическое занятие.
Для каждого практического занятия используйте имя начинающееся на
seminar-N-
, где N это номер семинара (опционально). -
По одному проекту на каждый учебный проект, курсовую работу и т.д.
-
Подгруппу
staff
, доступную только команде курса. В ней выкладываются решения задач, инструкции по приёму лабораторных работ и т.д.
-
- Если есть "подкурс", то
Например:
-
programming-languages
-
fall-2020
main
-
staff
(подгруппа) assignment-memory-allocator
assignment-image-rotation
seminar-1-setting-up
seminar-2-introduction-assembly
-
Имея проект в одной группе/подгруппе можно сделать его fork в другую. Например, это полезно когда лабораторные работы из года в год не изменяются. Предлагается каждый год создавать новую подгруппу и населять её актуальными версиями материалов. Для этого можно или переносить проекты в новый namespace, или, что лучше, делать форки. Так предыдущие версии курсов остаются для истории; кроме того, они иногда необходимы для студентов, которые переводятся, или которым по каким-то причинам нужно пройти старую версию курса. Проекты, группы, подгруппы могут иметь разную видимость:
- public видны всем в интернете
- internal видны зарегистрированным на gitlab пользователям
- private видны только членам группы
Пожалуйста, предпочитайте создавать public-репозитории и группы.