Учебники

Геррит – Краткое руководство

Геррит – Обзор

Gerrit – это веб-инструмент для анализа кода, который интегрирован с Git и построен на основе системы контроля версий Git (помогает разработчикам работать вместе и сохранять историю своей работы). Это позволяет объединить изменения в Git-репозиторий, когда вы закончите с обзорами кода.

Gerrit был разработан Шоном Пирсом в Google, который написан на Java, Servlet, GWT (Google Web Toolkit). Стабильный выпуск Gerrit – 2.12.2, опубликован 11 марта 2016 года по лицензии Apache License v2 .

Зачем использовать Геррит?

Ниже приведены некоторые причины, почему вы должны использовать Gerrit.

  • Вы можете легко найти ошибку в исходном коде, используя Gerrit.

  • Вы можете работать с Gerrit, если у вас есть обычный клиент Git; нет необходимости устанавливать какой-либо клиент Gerrit.

  • Gerrit можно использовать в качестве промежуточного звена между разработчиками и git-репозиториями.

Вы можете легко найти ошибку в исходном коде, используя Gerrit.

Вы можете работать с Gerrit, если у вас есть обычный клиент Git; нет необходимости устанавливать какой-либо клиент Gerrit.

Gerrit можно использовать в качестве промежуточного звена между разработчиками и git-репозиториями.

Особенности Геррит

  • Gerrit – это бесплатная система контроля версий Git с открытым исходным кодом.

  • Пользовательский интерфейс Gerrit сформирован на Google Web Toolkit .

  • Это легкая структура для проверки каждого коммита.

  • Gerrit действует как репозиторий, который позволяет загружать код и создает обзор для вашего коммита.

Gerrit – это бесплатная система контроля версий Git с открытым исходным кодом.

Пользовательский интерфейс Gerrit сформирован на Google Web Toolkit .

Это легкая структура для проверки каждого коммита.

Gerrit действует как репозиторий, который позволяет загружать код и создает обзор для вашего коммита.

Преимущества Геррит

  • Gerrit обеспечивает контроль доступа к репозиториям Git и веб-интерфейсу для проверки кода.

  • Вы можете нажать код без использования дополнительных инструментов командной строки.

  • Gerrit может разрешить или отклонить разрешение на уровне хранилища и вплоть до уровня филиала.

  • Геррит поддерживается Eclipse.

Gerrit обеспечивает контроль доступа к репозиториям Git и веб-интерфейсу для проверки кода.

Вы можете нажать код без использования дополнительных инструментов командной строки.

Gerrit может разрешить или отклонить разрешение на уровне хранилища и вплоть до уровня филиала.

Геррит поддерживается Eclipse.

Недостатки Геррита

  • Просмотр, проверка и повторная отправка коммитов кода замедляют время выхода на рынок.

  • Геррит может работать только с Git.

  • Gerrit работает медленно, и невозможно изменить порядок сортировки, в котором перечислены изменения.

  • Вам нужны права администратора, чтобы добавить репозиторий на Gerrit.

Просмотр, проверка и повторная отправка коммитов кода замедляют время выхода на рынок.

Геррит может работать только с Git.

Gerrit работает медленно, и невозможно изменить порядок сортировки, в котором перечислены изменения.

Вам нужны права администратора, чтобы добавить репозиторий на Gerrit.

Геррит – Установка

Прежде чем вы сможете использовать Gerrit, вы должны установить Git и выполнить некоторые базовые изменения конфигурации. Ниже приведены шаги по установке клиента Git на разных платформах.

Установка Git Client

Linux

Вы можете установить Git в Linux, используя инструмент управления пакетами программного обеспечения. Например, если вы используете Fedora, вы можете использовать как –

sudo yum install git

Если вы используете дистрибутив на основе Debian, такой как Ubuntu, используйте следующую команду:

sudo apt-get install git

Windows

Вы можете установить Git на Windows, загрузив его с веб-сайта Git. Просто перейдите по ссылке msysgit.github.io и нажмите кнопку загрузки.

макинтош

Git может быть установлен на Mac с помощью следующей команды –

brew install git

Другой способ установки Git – загрузить его с сайта Git. Просто перейдите по ссылке Git install на Mac , которая установит платформу Git для Mac.

Gerrit – настроить Git

После того, как вы установили Git, вам нужно настроить переменные конфигурации, чтобы добавить вашу личную информацию. Вы можете получить и установить переменные конфигурации с помощью инструмента Git, называемого git config, вместе с опцией -l (эта опция предоставляет текущую конфигурацию).

git config -l

Когда вы запустите вышеуказанную команду, вы получите переменные конфигурации, как показано на следующем рисунке

Конфигурация Git

Вы можете изменить пользовательскую информацию в любое время, используя команды снова. В следующей главе вы узнаете, как настроить имя пользователя и адрес электронной почты пользователя с помощью команды git config .

Gerrit – Установите имя пользователя и адрес электронной почты

Вы можете отслеживать каждый коммит, устанавливая переменные name и email . Переменная name указывает имя, а переменная email определяет адрес электронной почты, связанный с коммитами Git. Вы можете установить их, используя следующие команды –

git config --global user.email "your_email@mail.com"
git config --global user.name "your_name"

Когда вы выполните указанные выше команды, вы получите имя пользователя и адрес электронной почты, как показано на следующем рисунке.

Установите имя пользователя и адрес электронной почты

Gerrit – Создать новый ключ SSH

SSH означает Secure Shell или иногда протокол Secure Socket Shell , используемый для безопасного доступа к сетевым службам с удаленного компьютера. Вы можете установить ключи SSH, чтобы обеспечить надежное соединение между компьютером и Gerrit.

Вы можете проверить существующий ключ SSH на локальном компьютере, используя следующую команду в Git Bash:

$ ls ~/.ssh

После нажатия кнопки ввода вы увидите существующий ключ SSH, как показано на следующем рисунке –

Существующий ключ SSH

Если вы не нашли ни одного существующего ключа SSH, вам нужно создать новый ключ SSH.

Генерация нового ключа SSH

Вы можете сгенерировать новый ключ SSH для аутентификации, используя следующую команду в Git Bash –

$ ssh-keygen -t rsa -C "your_email@mail.com"

Если у вас уже есть ключ SSH, не генерируйте новый ключ, так как он будет перезаписан. Вы можете использовать команду ssh-keygen , только если вы установили Git с Git Bash.

Когда вы запустите указанную выше команду, она создаст 2 файла в каталоге ~ / .ssh .

  • ~ / .ssh / id_rsa – это закрытый ключ или идентификационный ключ.

  • ~ / .ssh / id_rsa.pub – это общедоступное телевидение.

~ / .ssh / id_rsa – это закрытый ключ или идентификационный ключ.

~ / .ssh / id_rsa.pub – это общедоступное телевидение.

Gerrit – добавь свой SSH ключ

Вы можете добавить SSH-ключ в ssh-agent на разных платформах, которые обсуждаются далее.

Linux

Используйте следующую команду в системе Linux, чтобы добавить ключ SSH

cat /home/<local-user>/.ssh/id_rsa.pub

Windows

Откройте GIT GUI и перейдите в « Справка» → «Показать ключ SSH», как показано на следующем рисунке.

Добавить ключ SSH

Затем нажмите кнопку « Копировать в буфер обмена» , чтобы скопировать ключ в буфер обмена.

Добавить ключ SSH

макинтош

В Mac OS X вы можете скопировать содержимое id_rsa.pub в буфер обмена с помощью следующей команды.

$ pbcopy < ~/.ssh/id_rsa.pub

Gerrit – добавьте ключ SSH в свой аккаунт Gerrit

Ключ SSH можно добавить в учетную запись Gerrit, выполнив следующие действия:

Шаг 1 – Сначала создайте учетную запись на сервисах wmflabs.org .

Шаг 2 – Далее войдите в веб-интерфейс для Gerrit .

Войти Геррит

  • Шаг 3 – Затем в правом верхнем углу щелкните свое имя пользователя и выберите параметр «Настройки».

    Настройки Gerrit

    Здесь мы создали учетную запись с именем Джон, чтобы использовать Геррит

  • Шаг 4 – Выберите опцию «Открытые ключи SSH» в меню слева и вставьте открытый ключ SSH в поле.

Шаг 3 – Затем в правом верхнем углу щелкните свое имя пользователя и выберите параметр «Настройки».

Здесь мы создали учетную запись с именем Джон, чтобы использовать Геррит

Шаг 4 – Выберите опцию «Открытые ключи SSH» в меню слева и вставьте открытый ключ SSH в поле.

Открытые ключи SSH

Gerrit – Добавить ключ SSH для использования с Git

Вы можете добавить ключ SSH в Git, используя следующие команды:

  • Шаг 1 – Откройте Git Bash и получите ssh-agent, используя следующую команду.

Шаг 1 – Откройте Git Bash и получите ssh-agent, используя следующую команду.

$ eval 'ssh-agent'
  • Шаг 2 – Затем добавьте ключ SSH к ssh-agent с помощью следующей команды

Шаг 2 – Затем добавьте ключ SSH к ssh-agent с помощью следующей команды

$ ssh-add ~/.ssh/id_rsa
  • Шаг 3 – Теперь запустите ssh с помощью следующей команды, которая соответствует отпечатку SSH, который использовался при первом входе в систему.

Шаг 3 – Теперь запустите ssh с помощью следующей команды, которая соответствует отпечатку SSH, который использовался при первом входе в систему.

$ ssh -p 29418 <user_name>@gerrit.wikimedia.org

Добавить ключ SSH с помощью Git

На приведенном выше снимке экрана видно, что xyz123 – это имя учетной записи оболочки экземпляра, которое используется при создании учетной записи Gerrit, а Abc123 – имя пользователя вашей учетной записи Gerrit.

Gerrit – Скачать примеры с помощью Git

Вы можете скачать пример с помощью Git вместе с исходным кодом любого проекта, организованного по адресу gerrit.wikimedia.org, с помощью следующей команды Git Bash.

$ git clone 
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples

Команда git clone клонирует каталог в новый каталог; другими словами, получает копию существующего хранилища . Когда вы запустите указанную выше команду, вы получите скриншот, подобный следующему.

Gerrit Скачать пример использования Git

Приведенная выше команда клонирует репозиторий examples, получает объекты, файлы и т. Д. Из этого репозитория и сохраняет его в вашей локальной ветке.

Gerrit – Установка Git-Review

Вы можете работать с Gerrit, установив git-review на разные платформы, как описано в этой главе.

Windows

В Windows вы можете установить git-review, как указано в следующих шагах.

Шаг 1 – Сначала установите Python для установки git-review.

Python Install

Шаг 2. Сохраните установку Python в каталоге по умолчанию (например, C: \ Python27) вместо установки в любой другой каталог.

Шаг 3 – Затем установите переменные среды для каталога скриптов Python, используя путь C: \ Python27 \; C: \ Python27 \ Scripts \;

git_review_install

Шаг 4 – В версии 2.7 Python автоматически установит pip. Для более старой версии Python 2.7 вы можете установить pip, как описано в этой ссылке .

Шаг 5 – Запустите Git Bash и установите git-review с помощью следующей команды.

$ pip install git-review

Linux

В Linux вы можете установить git-review, как описано в следующих шагах:

Шаг 1 Пользователи платформы Linux не имеют root-прав на общем хосте. Следовательно, без root-доступа вы можете установить git-review локально в пользовательском каталоге, используя следующие команды:

virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21

Шаг 2 – Вы можете расширить путь к локальным двоичным файлам двумя способами –

PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH

Шаг 3 – Теперь используйте следующую команду, чтобы настроить работу с Gerrit.

git review -s
 or
~/virtualenv/bin/git-review -s

Шаг 4 – При наличии root-доступа git-review можно установить с помощью следующей команды.

sudo apt-get install git-review

Шаг 5 – Если после установки Python нет apt-get , используйте следующие команды.

$ sudo easy_install pip
$ sudo pip install git-review==1.21

Шаг 6 – Запустите следующую команду для работы с Герритом.

git review -s

Mac OS X

В Mac вы можете установить git-review, выполнив следующие действия.

Шаг 1 – Установите Homebrew по этой ссылке.

Шаг 2 – Затем установите git-review с помощью следующей команды.

brew install git-review

Gerrit – Настройка Git-Review

Gerrit построен на основе системы контроля версий Git, которая извлекает код с другого хоста, передает изменения в код, отправляет код на проверку и т. Д. Удаленное имя Git по умолчанию – origin, и мы говорим git-review использовать его Назовите «происхождение» с помощью следующей команды.

$ git config --global gitreview.remote origin

Gerrit – Настройка Git-Review

Git-review можно использовать для отправки веток Git в Gerrit для проверки. Вы можете настроить gitreview, используя следующую команду в каталоге проекта.

$ git review -s

Git-review можно использовать в качестве инструмента командной строки для настройки клона Git, отправки ветвей в Gerrit, извлечения существующих файлов и т. Д. Git-review по умолчанию ищет удаленное имя gerrit для работы с Gerrit.

Если git-review обнаружит удаленный Gerrit, то он отправит ветку в HEAD: refs / for / master в удаленном местоположении, а если удаленного доступа Gerrit нет, то git-review выполнит поиск . файл gitreview в корне хранилища вместе с удаленной информацией gerrit.

Git-обзор обрабатывает следующее внутренне –

  • Он проверит, работает ли удаленный репозиторий для отправки веток.

  • Если удаленного доступа Gerrit нет, он запросит имя пользователя и попытается снова получить доступ к хранилищу.

  • Это создаст удаленный доступ с именем gerrit, который указывает на Gerrit.

  • Он установит хук commit-msg.

Он проверит, работает ли удаленный репозиторий для отправки веток.

Если удаленного доступа Gerrit нет, он запросит имя пользователя и попытается снова получить доступ к хранилищу.

Это создаст удаленный доступ с именем gerrit, который указывает на Gerrit.

Он установит хук commit-msg.

Геррит – Мастер обновления

Вы можете сделать главную ветку актуальной, используя следующую команду. Команда git-pull извлекается из другой локальной ветки или интегрируется с другим хранилищем.

git pull origin master

Геррит Обновление Мастер

  • Команда извлечет изменения из удаленного источника (URL удаленного источника для извлечения), из главной ветви и объединит изменения с локальной извлеченной веткой.

  • Хозяин источника – это кэшированная копия последнего извлеченного из источника.

  • Git pull представляет собой комбинацию git fetch (выбирает новые коммиты из удаленного репозитория) и git merge (интегрирует новые коммиты в локальную ветку).

  • Git pull по умолчанию объединяет локальную ветку с удаленной веткой.

Команда извлечет изменения из удаленного источника (URL удаленного источника для извлечения), из главной ветви и объединит изменения с локальной извлеченной веткой.

Хозяин источника – это кэшированная копия последнего извлеченного из источника.

Git pull представляет собой комбинацию git fetch (выбирает новые коммиты из удаленного репозитория) и git merge (интегрирует новые коммиты в локальную ветку).

Git pull по умолчанию объединяет локальную ветку с удаленной веткой.

Gerrit – Создать ветку

Вы можете создать ветку на локальном компьютере, используя следующую команду.

$ git checkout -b name_of_branch origin/master

Приведенная выше команда создает новую ветвь, как показано на следующем снимке экрана.

Gerrit Создание новой ветки

Здесь мы использовали branch123 в качестве нового локального филиала. Вы можете показать новую ветку от ‘master’, используя следующую команду.

$ git branch

Приведенная выше команда выдает результат, как показано на следующем снимке экрана.

Gerrit Создание новой ветки1

Git checkout перемещается между ветками, обновляет файлы в рабочем каталоге и информирует Git о фиксации коммитов в этой ветке.

Геррит – сделай и передай свои изменения

Когда вы изменяете код в локальной файловой системе, вы можете проверить изменения в каталоге с помощью следующей команды.

$ git diff

В каталоге проекта мы изменим некоторые изменения в файле Example / Example.hooks.php и запустим указанную выше команду. Мы получим результат, как показано на следующем скриншоте.

Gerrit совершает изменения

Вы можете проверить изменения, внесенные в файлы или каталог, используя следующую команду.

$ git status

Gerrit Commit Changes1

Приведенная выше команда позволяет увидеть, какие изменения были внесены, а какие нет, а какие файлы не отслеживаются Git.

Затем вы можете добавить изменения в рабочий каталог и обновить файл в следующем коммите, используя следующую команду.

$ git add Example/Example.hooks.php

После добавления файла снова запустите команду git status, чтобы просмотреть изменения, добавленные в промежуточную область, как показано на следующем снимке экрана.

Gerrit совершает изменения2

Вы можете увидеть разницу между индексом и вашим последним коммитом и тем, какое содержимое было размещено, используя следующую команду.

$ git diff --cached

Gerrit совершает изменения3

Вы можете отправить изменения в удаленный каталог из локального репозитория с помощью следующей команды.

$ git commit

Когда вы запустите указанную выше команду, она попросит добавить сообщение фиксации для ваших изменений. Это сообщение увидят другие люди, когда вы отправите коммит в другой репозиторий.

Gerrit Commit Changes4

Добавьте сообщение о коммите и снова запустите команду как git commit , которая отобразит сообщение о коммите, как показано на следующем снимке экрана.

Gerrit совершает изменения5

Gerrit – Приготовь Push Change Set для Gerrit

Вам необходимо просмотреть изменения в Gerrit, прежде чем объединить их с мастером. Изменения могут быть синхронизированы, которые произошли в мастере. Используйте следующую команду в той ветке, над которой вы работали.

$ git pull --rebase origin master
  • Приведенная выше команда будет извлекать изменения или коммиты из удаленной ветви и перебазировать коммиты поверх мастера.

  • Когда вы закончите с изменениями и отмените коммиты, вы можете перенести ваш набор изменений в Gerrit для просмотра.

  • Git pull –rebase часто используется, когда изменения не заслуживают отдельной ветки.

  • Git pull – это сочетание git fetch и git merge; где git pull –rebase представляет собой комбинацию git fetch и git rebase.

Приведенная выше команда будет извлекать изменения или коммиты из удаленной ветви и перебазировать коммиты поверх мастера.

Когда вы закончите с изменениями и отмените коммиты, вы можете перенести ваш набор изменений в Gerrit для просмотра.

Git pull –rebase часто используется, когда изменения не заслуживают отдельной ветки.

Git pull – это сочетание git fetch и git merge; где git pull –rebase представляет собой комбинацию git fetch и git rebase.

Сначала запустите команду от имени мастера git pull как показано на следующем снимке экрана.

Push Изменения в Геррит

Теперь используйте команду как git rebase master, чтобы перебазировать коммиты, как показано на следующем скриншоте.

Push Изменения в Gerrit1

Gerrit – Переведите свой набор изменений в Gerrit

Вы можете отправить исправления для проверки с помощью команды git-review . Набор изменений можно перенести в Gerrit, запустив команду git review -R, как показано на следующем снимке экрана.

Push Изменения в Геррит

Опция -R информирует git-review о том, что нельзя завершать ребазинг перед отправкой изменений git в Gerrit.

Вы можете отправить код в другую ветку, а не в мастер, используя следующую команду.

git review name_of_branch

Также можно отправить код на другой пульт, используя следующую команду.

git review -r name_of_remote

Gerrit – Просмотр изменений / Следующие шаги

Изменения можно просмотреть на панели инструментов Gerrit, нажав на эту ссылку .

Посмотреть изменения в Gerrit

Нажмите на ссылку с измененным именем автора , и вы получите следующий скриншот.

Посмотреть изменения в Gerrit

Нажмите на ссылку распространения, чтобы увидеть измененные файлы с другими деталями, как показано на следующем снимке экрана.

Посмотреть изменения в Gerrit

Gerrit – редактирование через веб-интерфейс

Вы можете редактировать проект через веб-интерфейс после входа в учетную запись Gerrit, как показано на следующих шагах.

Шаг 1 – Перейдите на панель инструментов Gerrit, нажав на эту ссылку . Вы получите следующий скриншот.

Посмотреть изменения в Gerrit

Шаг 2 – Затем нажмите ссылку mediawiki / extensions / examples, указанную в столбце Project .

Шаг 3 – Нажмите ссылку General на панели инструментов, как показано на следующем снимке экрана.

Редактирование через веб-интерфейс

Шаг 4 – Когда вы откроете ссылку General , она покажет снимок экрана, как показано ниже.

Редактирование через веб-интерфейс

Шаг 5 – Нажмите кнопку « Создать изменение» , и откроется всплывающее окно с некоторыми деталями, как показано на следующем снимке экрана.

Редактирование через веб-интерфейс

Шаг 6 – Введите информацию и нажмите кнопку « Создать» .

После создания изменения будет отображена информация, как показано на следующем снимке экрана.

Редактирование через веб-интерфейс

Шаг 7 – Нажмите « Изменить», а затем нажмите « Добавить» . Теперь выберите файл, который вы хотите редактировать. Здесь мы выбрали файл Example / i18n / en.json .

Редактирование через веб-интерфейс

Когда вы откроете файл, он покажет данные json, как указано на следующем снимке экрана.

Редактирование через веб-интерфейс

Шаг 8 – Нажмите Сохранить, а затем нажмите кнопку Закрыть .

Шаг 9 – Наконец нажмите кнопку « Опубликовать» , чтобы опубликовать отредактированный файл.

Редактирование через веб-интерфейс

Шаг 10. Вы можете изменить сообщение о коммите, нажав на ссылку «Сообщение о коммите», как показано на следующем снимке экрана.

Редактирование через веб-интерфейс

Шаг 11 – Нажмите e на клавиатуре и добавьте некоторую дополнительную информацию, если вы хотите нажать Сохранить, а затем нажать кнопку Закрыть .

Редактирование через веб-интерфейс

Gerrit – обзор перед слиянием

Проверка кода является важной частью рабочего процесса в Gerrit. Основная концепция заключается в том, что код должен быть проверен перед объединением.

Рабочий процесс кода для MediaWiki может быть проверен перед объединением, а также могут быть рассмотрены расширения, которые настраивают внешний вид и работу MediaWiki. Существует один особый случай, когда вы можете подтолкнуть коммиты интернационализации и локализации .

Вы можете отправить все коммиты в удаленную ветку, когда закончите разработку. Кто-то извлечет изменения в локальный и объединит эти извлеченные изменения с локальным мастером, создав коммит слияния. Вы можете отправить эти изменения в refs / for / master .

Геррит – Владельцы проекта

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

Вы можете просмотреть права доступа вашего проекта, выполнив следующие действия.

Шаг 1 – Откройте инструментальную панель Gerrit, нажав эту ссылку .

Геррит владелец проекта

Шаг 2 – Нажмите « Проекты» → «Список» . Найдите проект в списке проектов и щелкните по нему, как показано на следующем снимке экрана.

Геррит владелец проекта

Шаг 3 – Когда вы откроете свой проект, выберите опцию Access, как показано на следующем снимке экрана.

Геррит владелец проекта

Шаг 4 – Нажмите опцию редактирования . Вы можете изменить права доступа, щелкнув раскрывающееся меню. Нажмите кнопку « Сохранить изменения» , как показано на следующем снимке экрана.

Геррит владелец проекта

Как комментировать, просматривать и объединять

Любой может просмотреть код и прокомментировать код в Gerrit. Рассмотрим следующие шаги –

Шаг 1 – Войдите в Gerrit, чтобы открыть панель управления Gerrit, как указано в предыдущей главе.

Шаг 2 – Теперь щелкните по любой теме, которая содержит проект Gerrit, ветку, дату обновления и т. Д., Как показано на следующем снимке экрана.

Gerrit Review Код Слияния

Шаг 3 – Далее отобразится экран. Выберите параметр « Отправить сообщение», как показано на следующем снимке экрана.

Gerrit Review Код Слияния

Важными полями набора изменений являются, например, Reviewers, Add Reviewer, Side-by-side off и т. Д. Сравнение наборов исправлений включает в себя выбор старого списка истории версий, расширение подробностей нового набора исправлений и т. Д. Просмотр и объединение или отклонение кода включает кнопку отмены изменений, кнопку отправки патча и т. д., которых нет в текущей версии Gerrit.