Геррит — Обзор
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 config .
Gerrit — Установите имя пользователя и адрес электронной почты
Вы можете отслеживать каждый коммит, устанавливая переменные name и email . Переменная name указывает имя, а переменная email определяет адрес электронной почты, связанный с коммитами Git. Вы можете установить их, используя следующие команды —
git config --global user.email "[email protected]" 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 для аутентификации, используя следующую команду в Git Bash —
$ ssh-keygen -t rsa -C "[email protected]"
Если у вас уже есть ключ 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», как показано на следующем рисунке.
Затем нажмите кнопку « Копировать в буфер обмена» , чтобы скопировать ключ в буфер обмена.
макинтош
В Mac OS X вы можете скопировать содержимое id_rsa.pub в буфер обмена с помощью следующей команды.
$ pbcopy < ~/.ssh/id_rsa.pub
Gerrit — добавьте ключ SSH в свой аккаунт Gerrit
Ключ SSH можно добавить в учетную запись Gerrit, выполнив следующие действия:
-
Шаг 1 — Сначала создайте учетную запись на сервисах wmflabs.org .
Шаг 1 — Сначала создайте учетную запись на сервисах wmflabs.org .
-
Шаг 2 — Далее войдите в веб-интерфейс для Gerrit .
Шаг 2 — Далее войдите в веб-интерфейс для Gerrit .
-
Шаг 3 — Затем в правом верхнем углу щелкните свое имя пользователя и выберите параметр «Настройки».
Здесь мы создали учетную запись с именем Джон, чтобы использовать Геррит
-
Шаг 4 — Выберите опцию «Открытые ключи SSH» в меню слева и вставьте открытый ключ SSH в поле.
Шаг 3 — Затем в правом верхнем углу щелкните свое имя пользователя и выберите параметр «Настройки».
Здесь мы создали учетную запись с именем Джон, чтобы использовать Геррит
Шаг 4 — Выберите опцию «Открытые ключи 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
На приведенном выше снимке экрана видно, что 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 клонирует каталог в новый каталог; другими словами, получает копию существующего хранилища . Когда вы запустите указанную выше команду, вы получите скриншот, подобный следующему.
Приведенная выше команда клонирует репозиторий examples, получает объекты, файлы и т. Д. Из этого репозитория и сохраняет его в вашей локальной ветке.
Gerrit — Установка Git-Review
Вы можете работать с Gerrit, установив git-review на разные платформы, как описано в этой главе.
Windows
В Windows вы можете установить git-review, как указано в следующих шагах.
Шаг 1 — Сначала установите Python для установки git-review.
Шаг 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
Приведенная выше команда создает новую ветвь, как показано на следующем снимке экрана.
Здесь мы использовали branch123 в качестве нового локального филиала. Вы можете показать новую ветку от ‘master’, используя следующую команду.
$ git branch
Приведенная выше команда выдает результат, как показано на следующем снимке экрана.
Git checkout перемещается между ветками, обновляет файлы в рабочем каталоге и информирует Git о фиксации коммитов в этой ветке.
Геррит — сделай и передай свои изменения
Когда вы изменяете код в локальной файловой системе, вы можете проверить изменения в каталоге с помощью следующей команды.
$ git diff
В каталоге проекта мы изменим некоторые изменения в файле Example / Example.hooks.php и запустим указанную выше команду. Мы получим результат, как показано на следующем скриншоте.
Вы можете проверить изменения, внесенные в файлы или каталог, используя следующую команду.
$ git status
Приведенная выше команда позволяет увидеть, какие изменения были внесены, а какие нет, а какие файлы не отслеживаются Git.
Затем вы можете добавить изменения в рабочий каталог и обновить файл в следующем коммите, используя следующую команду.
$ git add Example/Example.hooks.php
После добавления файла снова запустите команду git status, чтобы просмотреть изменения, добавленные в промежуточную область, как показано на следующем снимке экрана.
Вы можете увидеть разницу между индексом и вашим последним коммитом и тем, какое содержимое было размещено, используя следующую команду.
$ git diff --cached
Вы можете отправить изменения в удаленный каталог из локального репозитория с помощью следующей команды.
$ git commit
Когда вы запустите указанную выше команду, она попросит добавить сообщение фиксации для ваших изменений. Это сообщение увидят другие люди, когда вы отправите коммит в другой репозиторий.
Добавьте сообщение о коммите и снова запустите команду как git commit , которая отобразит сообщение о коммите, как показано на следующем снимке экрана.
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 как показано на следующем снимке экрана.
Теперь используйте команду как git rebase master, чтобы перебазировать коммиты, как показано на следующем скриншоте.
Gerrit — Переведите свой набор изменений в Gerrit
Вы можете отправить исправления для проверки с помощью команды git-review . Набор изменений можно перенести в Gerrit, запустив команду git review -R, как показано на следующем снимке экрана.
Опция -R информирует git-review о том, что нельзя завершать ребазинг перед отправкой изменений git в Gerrit.
Вы можете отправить код в другую ветку, а не в мастер, используя следующую команду.
git review name_of_branch
Также можно отправить код на другой пульт, используя следующую команду.
git review -r name_of_remote
Gerrit — Просмотр изменений / Следующие шаги
Изменения можно просмотреть на панели инструментов Gerrit, нажав на эту ссылку .
Нажмите на ссылку с измененным именем автора , и вы получите следующий скриншот.
Нажмите на ссылку распространения, чтобы увидеть измененные файлы с другими деталями, как показано на следующем снимке экрана.
Gerrit — редактирование через веб-интерфейс
Вы можете редактировать проект через веб-интерфейс после входа в учетную запись Gerrit, как показано на следующих шагах.
Шаг 1 — Перейдите на панель инструментов 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, ветку, дату обновления и т. Д., Как показано на следующем снимке экрана.
Шаг 3 — Далее отобразится экран. Выберите параметр « Отправить сообщение», как показано на следующем снимке экрана.
Важными полями набора изменений являются, например, Reviewers, Add Reviewer, Side-by-side off и т. Д. Сравнение наборов исправлений включает в себя выбор старого списка истории версий, расширение подробностей нового набора исправлений и т. Д. Просмотр и объединение или отклонение кода включает кнопку отмены изменений, кнопку отправки патча и т. д., которых нет в текущей версии Gerrit.