Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • M main
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • cse
  • main
  • Wiki
  • Правила организации репозиториев

Last edited by Igor Zhirkov Feb 23, 2022
Page history

Правила организации репозиториев

Основная единица организации кода на Gitlab это проект. Проект это пара из основного репозитория, связанного репозитория для Wiki, и описание различных интеграций с внешними сервисами и инструментам.

Gitlab позволяет иметь произвольное количество уровней иерархии для "директории", в которой будет находиться проект:

  • Группа
    • Подгруппа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-репозитории и группы.

Clone repository
  • Gitlab Guide
  • Home
  • Использование continuous integration для автоматического тестирования лабораторных работ
  • Как послать задание на проверку
  • Правила организации репозиториев