ci.csn.khai.edu

CI-infrastructure of Computer Systems and Networks Department

Как работать с Gerrit Code Review в ci.csn.khai.edu

Если Вы никогда ранее не работали с Gerrit Code Review данная публикация будет полезна для прочтения. В данной статье мы рассмотрим как принять участие в ci.csn.khai.edu проектах, выполнять лабораторные работы по доступным дисциплинам, а также просматривать и комментировать свой/чужой программный код.

Примечание: Для того, чтобы иметь возможность “контрибьютить” в любой из проектов в Gerrit Code Review ci.csn.khai.edu у Вас должен быть аккаунт в домене @csn.khai.edu (@student.csn.khai.edu).

Как настроить Gerrit Code Review аккаунт в первый раз

  1. Войдите в систему Gerrit Code Review с помощью Вашего @student.csn.khai.edu аккаунта:

    Sign in gerrit

  2. Перейдите в настройки своего профиля Settings:

    Personal settings gerrit

  3. В меню 'SettingsProfile' укажите Username и нажмите на кнопку 'Select Username'.

    Примечание: Обратите внимание на то, что имя пользователя (Username) не может быть изменено в дальнейшем. Выбирайте его с осторожностью, согласно следующим правилам: Первая буква Вашего имени + Ваша фамилия (смотрите на свой аккаунт), например: Vitalii Kulanov (vkulanov), Andrey Popov (apopov).

    Set user settings gerrit

  4. Внесите изменения в свои персональные данные (например, если у Вас проблема с корректностью отображения Вашего имени '????? ??????') в меню 'SettingsContact Information'. Обратите внимание на то, что все данные должны быть заполнены латиницей:

    Set user fullname gerrit

  5. Добавьте свой публичный SSH-ключ (SSH Public Key), меню 'SettingsSSH Public Keys'.

    Примечание: Вопросы связанные с генерирацией SSH-ключей и особенностями их использования выходят за рамки данной статьи. Для получения более детальной информации воспользуйтесь поисковыми системами.

    Set user ssh gerrit

  6. Если есть необходимость в дополнительных настройках Gerrit Review System (стиль темы, формат даты/времени, количество отображаемых данных и т.д.) просмотрите остальные пункты меню 'Settings'.

Теперь Вы готовы “контрибьютить” в любой проект ci.csn.khai.edu через Gerrit Code Review.

Как начать “контрибьютить” в проекты ci.csn.khai.edu

Примечание: Перед тем как начать “контрибьютить” в проекты ci.csn.khai.edu удостоверьтесь в том, что Git и Gerrit/git-review установлены и корректно настроены в Вашей ОС. Некоторые базовые примеры установки git в Windows и установки git-review в Windows.

Примечание: Рассмотренные ниже примеры выполнялись в ОС Ubuntu 16.04.2 LTS

Если Вы новичок, то настоятельно рекомендуем Вам попробовать свои “силы” в проекте ‘cicsnkhaiedu-dev/sandbox’.

  1. Найдите проект 'cicsnkhaiedu-dev/sandbox' в Gerrit Code Review. Выбирите меню 'List' ('ProjectsList') и введите название проекта в поле 'Filter'.

    Search project gerrit

  2. Склонируйте проект 'cicsnkhaiedu-dev/sandbox' к себе на локальный компьютер. Нажмите на меню 'ssh' и скопируйте выделенный текст:

    git clone ssh://vkulanov@ci.csn.khai.edu:29418/cicsnkhaiedu-dev/sandbox
    

    Clone project gerrit

    Вставьте скопированный текст в окно терминала Командной Строки и нажмите Enter:

    machin@machin:/tmp/projects$ git clone ssh://vkulanov@ci.csn.khai.edu:29418/cicsnkhaiedu-dev/sandbox
    Cloning into 'sandbox'...
    remote: Counting objects: 3, done
    remote: Finding sources: 100% (3/3)
    remote: Total 3 (delta 0), reused 3 (delta 0)
    Receiving objects: 100% (3/3), done.
    Checking connectivity... done.
    machin@machin:/tmp/projects$ ls
    sandbox
    machin@machin:/tmp/projects$ tree .
    .
    └── sandbox
        └── README.md
    
    1 directory, 1 file
    

    Проект sandbox содержит один едиственный файл README.md.

  3. Отредактируйте файл README.md.
  4. Посмотреть на общие изменения можно с помощью команды git status:

    machin@machin:/tmp/projects/sandbox$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
      modified:   README.md
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
  5. Также можно посмотреть на все изменения более детально (разница между текущей веткой и origin/master) выполнив команду git diff origin/master:

    machin@machin:/tmp/projects/sandbox$ git diff origin/master
    diff --git a/README.md b/README.md
    index dad16bd..b7731c4 100644
    --- a/README.md
    +++ b/README.md
    @@ -1 +1,3 @@
    # Hello from sandbox
    +
    +This is a change
    
  6. Добавьте содержимое рабочей директории в индекс (staging area) для последующего коммита с помощью команды git add:

    machin@machin:/tmp/projects/sandbox$ git add README.md
    machin@machin:/tmp/projects/sandbox$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
     modified:   README.md
    
    
  7. Зафиксируйте изменения командной git commit:

    Примечание: Рекомендуется ознакомиться с “хорошим тоном” описания коммитов (Git Commit Good Practice)

    Пример коммита:

    Add small changes to README.md file
    
    This is the first commit to 'sandbox' project
    
    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    # On branch master
    # Your branch is up-to-date with 'origin/master'.
    #
    # Changes to be committed:
    #       modified:   README.md
    #
    

    Результат выполнения команды git commit следующий:

    [master 53d83e2] Add small changes to README.md file
    1 file changed, 2 insertions(+)
    machin@machin:/tmp/sandbox$ git status
    On branch master
    Your branch is ahead of 'origin/master' by 1 commit.
      (use "git push" to publish your local commits)
    nothing to commit, working directory clean
    
  8. Отправьте все сделанные Вами изменения на “ревью” (просмотр) в Gerrit Code Review выполнив команду git review (!!! НЕ git push)

    Примечание: Если Вы делаете это первый раз (для конкретного репозитория) система попросит Вас указать имя Вашего пользователя (Username).

    machin@machin:/tmp/sandbox$ git review
    Creating a git remote called "gerrit" that maps to:
           ssh://vkulanov@ci.csn.khai.edu:29418/cicsnkhaiedu-dev/sandbox
    Your change was committed before the commit hook was installed.
    Amending the commit to add a gerrit change id.
    remote: Processing changes: new: 1, refs: 1, done
    remote:
    remote: New Changes:
    remote:   https://ci.csn.khai.edu/gerrit/2 Add small changes to README.md file
    remote:
    To ssh://vkulanov@ci.csn.khai.edu:29418/cicsnkhaiedu-dev/sandbox
      * [new branch]      HEAD -> refs/publish/master
    
  9. Вы можете удостовериться (Меню MyChanges, секция Outgoing reviews) в том, что Ваш патч создан и ожидает “ревью”:

    Примечание: Заголовок коммит сообщения патча отображается в качестве заголовка в Gerrit Review System

    Project ls gerrit