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

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 - это бесплатная система контроля версий Git с открытым исходным кодом.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка клиента Git

Linux

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

sudo yum install git

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

sudo apt-get install git

Windows

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

Mac

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

brew install git

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

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

git config -l

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

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

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

git config --global user.email "[email protected]"
git config --global user.name "your_name"

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

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-ключ к ssh-agent на различных платформах, о которых будет сказано ниже.

Linux

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

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

Windows

Откройте графический интерфейс GIT и перейдите в Help → Show SSH Key как показано на следующем изображении.

Затем щелкните значок Copy To Clipboard кнопку, чтобы скопировать ключ в буфер обмена.

Mac

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

$ pbcopy < ~/.ssh/id_rsa.pub

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

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

  • Step 2- Затем войдите в веб-интерфейс Gerrit .

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

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

  • Step 4 - Щелкните параметр «Открытые ключи SSH» в меню слева и вставьте открытый ключ SSH в это поле.

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

  • Step 1 - Откройте Git Bash и получите ssh-agent с помощью следующей команды.

$ eval 'ssh-agent'
  • Step 2 - Затем добавьте SSH-ключ к ssh-agent, используя следующую команду

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

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

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

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

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

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

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

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

Windows

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

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

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

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

git_review_install

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

Step 5 - Запустите открытый Git Bash и установите git-review, используя следующую команду.

$ pip install git-review

Linux

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

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

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

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

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

Step 3 - Теперь используйте следующую команду для настройки работы с Gerrit.

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

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

sudo apt-get install git-review

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

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

Step 6 - Выполните следующую команду для работы с Gerrit.

git review -s

Mac OS X

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

Step 1- Установите Homebrew по этой ссылке.

Step 2 - Затем установите git-review, используя следующую команду.

brew install git-review

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

$ git config --global gitreview.remote origin

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-review обрабатывает следующее внутри:

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

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

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

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

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

git pull origin master
  • Команда извлечет изменения из исходного удаленного (URL-адрес удаленного сервера для извлечения), из основной ветки и объединит изменения в локальную извлеченную ветвь.

  • Мастер происхождения - это кэшированная копия последнего извлеченного из источника.

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

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

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

$ git checkout -b name_of_branch origin/master

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

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

$ 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, прежде чем объединять их в мастер. Можно синхронизировать изменения, которые произошли в мастере. Используйте следующую команду в ветке, над которой вы работали.

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

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

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

  • Git pull - это комбинация git fetch и git merge; где как git pull --rebase - это комбинация git fetch и git rebase.

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

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

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

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

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

git review name_of_branch

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

git review -r name_of_remote

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

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

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

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

Step 1- Перейдите в панель управления Gerrit, щелкнув эту ссылку . Вы получите следующий снимок экрана.

Step 2 - Затем нажмите кнопку mediawiki/extensions/examplesссылка указана в столбце " Проект" .

Step 3- Щелкните ссылку « Общие» на панели инструментов, как показано на следующем снимке экрана.

Step 4- Когда вы откроете ссылку « Общие» , появится следующий снимок экрана.

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

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

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

Step 7- Щелкните " Изменить", а затем щелкните " Добавить" . Теперь выберите файл, который хотите отредактировать. Здесь мы выбрали файлExample/i18n/en.json.

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

Step 8- Нажмите «Сохранить», а затем нажмите кнопку « Закрыть» .

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

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

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

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

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

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

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

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

Step 1- Откройте панель управления Gerrit, щелкнув эту ссылку .

Step 2- Щелкните " Проекты" → "Список" . Найдите проект в списке проектов и щелкните его, как показано на следующем снимке экрана.

Step 3- Когда вы открываете свой проект, выберите параметр « Доступ», как показано на следующем снимке экрана.

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

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

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

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

Step 3- Далее будет отображен экран. Нажмите на опцию Commit Message, как показано на следующем снимке экрана.

Важными полями набора изменений являются такие, как «Рецензенты», «Добавить рецензента», «Параллельное отключение» и т. Д. Сравнение наборов исправлений включает выбор старого списка истории версий, раскрытие сведений о новом наборе исправлений и т. Д. Просмотр и объединение или отклонение кода включает кнопку отказа от изменения, кнопку отправки патча и т. д., которых нет в текущей версии Gerrit.