Gerrit - Guía rápida

Gerrit es una herramienta de revisión de código basada en web que está integrada con Git y construida sobre el sistema de control de versiones de Git (ayuda a los desarrolladores a trabajar juntos y mantener el historial de su trabajo). Permite fusionar los cambios en el repositorio de Git cuando haya terminado con las revisiones de código.

Gerrit fue desarrollado por Shawn Pearce en Google, que está escrito en Java, Servlet, GWT (Google Web Toolkit). La versión estable de Gerrit es 2.12.2 y se publicó el 11 de marzo de 2016 con la licencia Apache License v2 .

¿Por qué utilizar Gerrit?

A continuación se presentan algunas razones por las que debería utilizar Gerrit.

  • Puede encontrar fácilmente el error en el código fuente usando Gerrit.

  • Puede trabajar con Gerrit, si tiene un cliente Git habitual; no es necesario instalar ningún cliente Gerrit.

  • Gerrit se puede utilizar como intermediario entre desarrolladores y repositorios de git.

Características de Gerrit

  • Gerrit es un sistema de control de versiones de Git gratuito y de código abierto.

  • La interfaz de usuario de Gerrit se forma en Google Web Toolkit .

  • Es un marco ligero para revisar cada confirmación.

  • Gerrit actúa como un repositorio, lo que permite empujar el código y crea la revisión para su confirmación.

Ventajas de Gerrit

  • Gerrit proporciona control de acceso para repositorios Git y frontend web para revisión de código.

  • Puede enviar el código sin utilizar herramientas de línea de comandos adicionales.

  • Gerrit puede permitir o rechazar el permiso a nivel de repositorio y hasta el nivel de rama.

  • Gerrit es compatible con Eclipse.

Desventajas de Gerrit

  • La revisión, verificación y reenvío de las confirmaciones de código ralentiza el tiempo de comercialización.

  • Gerrit solo puede trabajar con Git.

  • Gerrit es lento y no es posible cambiar el orden de clasificación en el que se enumeran los cambios.

  • Necesita derechos de administrador para agregar un repositorio en Gerrit.

Antes de poder usar Gerrit, debe instalar Git y realizar algunos cambios de configuración básicos. Los siguientes son los pasos para instalar el cliente Git en diferentes plataformas.

Instalación del cliente Git

Linux

Puede instalar Git en Linux utilizando la herramienta de administración de paquetes de software. Por ejemplo, si está usando Fedora, puede usar como -

sudo yum install git

Si está utilizando una distribución basada en Debian como Ubuntu, utilice el siguiente comando:

sudo apt-get install git

Ventanas

Puede instalar Git en Windows descargándolo del sitio web de Git. Simplemente vaya al enlace msysgit.github.io y haga clic en el botón de descarga.

Mac

Git se puede instalar en Mac usando el siguiente comando:

brew install git

Otra forma de instalar Git es descargándolo del sitio web de Git. Simplemente vaya al enlace de instalación de Git en Mac , que instalará Git para la plataforma Mac.

Una vez que haya instalado Git, debe personalizar las variables de configuración para agregar su información personal. Puede obtener y establecer las variables de configuración utilizando la herramienta Git llamada git config junto con la opción -l (esta opción proporciona la configuración actual).

git config -l

Cuando ejecute el comando anterior, obtendrá las variables de configuración como se muestra en la siguiente imagen

Puede cambiar la información personalizada en cualquier momento utilizando los comandos nuevamente. En el siguiente capítulo, aprenderá a configurar el nombre de usuario y el correo electrónico del usuario mediante el comando git config .

Puede realizar un seguimiento de cada confirmación configurando el nombre y las variables de correo electrónico . La variable de nombre especifica el nombre, mientras que la variable de correo electrónico identifica la dirección de correo electrónico asociada con las confirmaciones de Git. Puede configurarlos usando los siguientes comandos:

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

Cuando ejecute los comandos anteriores, obtendrá el nombre de usuario y la dirección de correo electrónico como se muestra en la siguiente imagen.

SSH son las siglas de Secure Shell o, a veces, el protocolo Secure Socket Shell utilizado para acceder a los servicios de red de forma segura desde una computadora remota. Puede configurar las claves SSH para proporcionar una conexión confiable entre la computadora y Gerrit.

Puede verificar la clave SSH existente en su computadora local usando el siguiente comando en Git Bash:

$ ls ~/.ssh

Después de hacer clic en el botón Intro, verá la clave SSH existente como se muestra en la siguiente imagen:

Si no encuentra ninguna clave SSH existente, debe crear una nueva clave SSH.

Generando nueva clave SSH

Puede generar una nueva clave SSH para la autenticación usando el siguiente comando en Git Bash:

$ ssh-keygen -t rsa -C "[email protected]"

Si ya tiene una clave SSH, no genere una nueva clave, ya que se sobrescribirán. Puede usar el comando ssh-keygen , solo si ha instalado Git con Git Bash.

Cuando ejecute el comando anterior, creará 2 archivos en el directorio ~ / .ssh .

  • ~/.ssh/id_rsa - Es clave privada o clave de identificación.

  • ~/.ssh/id_rsa.pub - Es una televisión pública.

Puede agregar la clave SSH al ssh-agent en diferentes plataformas que se describen más adelante.

Linux

Use el siguiente comando en el sistema Linux para agregar la clave SSH

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

Ventanas

Abra la GUI de GIT y vaya a Help → Show SSH Key como se muestra en la siguiente imagen.

Luego, haga clic en el Copy To Clipboard , para copiar la clave al portapapeles.

Mac

En Mac OS X, puede copiar el contenido de id_rsa.pub al portapapeles con el siguiente comando.

$ pbcopy < ~/.ssh/id_rsa.pub

La clave SSH se puede agregar a la cuenta de Gerrit siguiendo los siguientes pasos:

  • Step 1- Primero cree una cuenta en los servicios de wmflabs.org .

  • Step 2- A continuación, inicie sesión en la interfaz web de Gerrit .

  • Step 3 - Luego, en la esquina superior derecha, haga clic en su nombre de usuario y seleccione la opción Configuración.

    Aquí, hemos creado una cuenta con el nombre de John para hacer uso de Gerrit

  • Step 4 - Haga clic en la opción "Claves públicas SSH" en el menú del lado izquierdo y pegue la clave pública SSH en el campo.

Puede agregar la clave SSH a Git usando los siguientes comandos:

  • Step 1 - Abra Git Bash y obtenga el ssh-agent usando el siguiente comando.

$ eval 'ssh-agent'
  • Step 2 - Luego, agregue la clave SSH al ssh-agent usando el siguiente comando

$ ssh-add ~/.ssh/id_rsa
  • Step 3 - Ahora, ejecute ssh usando el siguiente comando, que coincide con la huella digital SSH utilizada al iniciar sesión por primera vez.

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

En la captura de pantalla anterior, puede ver que xyz123 es un nombre de cuenta de shell de instancia, que se utiliza al crear una cuenta Gerrit y Abc123 es un nombre de usuario de su cuenta Gerrit.

Puede descargar el ejemplo usando Git junto con el código fuente de cualquier proyecto organizado en gerrit.wikimedia.org usando el siguiente comando de Git Bash.

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

El comando git clone clona un directorio en un nuevo directorio; en otras palabras, obtiene una copia de un repositorio existente . Cuando ejecute el comando anterior, obtendrá una captura de pantalla similar a la siguiente.

El comando anterior clona el repositorio de 'ejemplos' y recibe los objetos, archivos, etc. de ese repositorio y lo almacena en su sucursal local.

Puede trabajar con Gerrit instalando git-review en diferentes plataformas como se explica en este capítulo.

Ventanas

En Windows, puede instalar git-review como se indica en los siguientes pasos.

Step 1- Primero instale Python para instalar git-review.

Step 2 - Mantenga la instalación de Python en el directorio predeterminado (como C: \ Python27) en lugar de instalar en cualquier otro directorio.

Step 3 - A continuación, configure las variables de entorno para el directorio de scripts de Python usando la ruta como C:\Python27\;C:\Python27\Scripts\;

git_review_install

Step 4- Con la versión 2.7, Python instalará pip automáticamente. Para una versión anterior de Python 2.7, puede instalar pip como se describe en este enlace .

Step 5 - Ejecute open Git Bash e instale git-review usando el siguiente comando.

$ pip install git-review

Linux

En Linux, puede instalar git-review como se describe en los siguientes pasos:

Step 1Los usuarios de la plataforma Linux no tienen acceso de root en el host compartido. Por lo tanto, sin acceso de root, puede instalar git-review localmente en el directorio de usuarios usando los siguientes comandos:

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

Step 2 - Puede ampliar la ruta a los binarios locales de dos formas:

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

Step 3 - Ahora, use el siguiente comando para configurar el trabajo con Gerrit.

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

Step 4 - Con acceso de root, git-review se puede instalar usando el siguiente comando.

sudo apt-get install git-review

Step 5- Si no hay apt-get después de instalar Python, utilice los siguientes comandos.

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

Step 6 - Ejecute el siguiente comando para trabajar con Gerrit.

git review -s

Mac OS X

En Mac, puede instalar git-review siguiendo los siguientes pasos.

Step 1- Instale Homebrew desde este enlace.

Step 2 - A continuación, instale git-review usando el siguiente comando.

brew install git-review

Gerrit está construido sobre el sistema de control de versiones de Git, que extrae el código de otro host, empuja cambios en el código, envía el código para revisión, etc. El nombre remoto predeterminado de Git es origin y le decimos a git-review que use este nombre 'origen' utilizando el siguiente comando.

$ git config --global gitreview.remote origin

Git-review se puede utilizar para enviar ramas de git a Gerrit para su revisión. Puedes configurar gitreview usando el siguiente comando en el directorio del proyecto.

$ git review -s

Git-review se puede usar como herramienta de línea de comandos para configurar el clon de Git, enviar las ramas a Gerrit, recuperar los archivos existentes, etc. Git-review busca el control remoto llamado gerrit para trabajar con Gerrit de forma predeterminada.

Si git-review encuentra el control remoto Gerrit, enviará la rama a HEAD:refs/for/masteren la ubicación remota y si no hay acceso remoto Gerrit, entonces git-review busca el archivo .gitreview archivo en la raíz del repositorio junto con la información remota gerrit.

Git-review procesa lo siguiente internamente:

  • Verificará si el repositorio remoto funciona o no para enviar las ramas.

  • Si no hay acceso remoto Gerrit, entonces le pedirá el nombre de usuario e intentará acceder al repositorio nuevamente.

  • Creará un acceso remoto llamado gerrit que apunta a Gerrit.

  • Instalará el gancho commit-msg.

Puede actualizar la rama maestra con el siguiente comando. El comando git-pull obtiene de otra rama local o se integra con otro repositorio.

git pull origin master
  • El comando extraerá los cambios desde el origen remoto (URL del remoto desde el que buscar), la rama maestra y fusionará los cambios en la rama local extraída.

  • El maestro de origen es una copia en caché del último extraído del origen.

  • Git pull es una combinación de git fetch (obtiene nuevas confirmaciones del repositorio remoto) y git merge (integra nuevas confirmaciones en la rama local).

  • Git pull fusiona la rama local con la rama remota de forma predeterminada.

Puede crear una rama en la máquina local usando el siguiente comando.

$ git checkout -b name_of_branch origin/master

El comando anterior crea una nueva rama como se muestra en la siguiente captura de pantalla.

Aquí, hemos utilizado branch123como la nueva sucursal local. Puede mostrar la nueva rama del 'maestro' usando el siguiente comando.

$ git branch

El comando anterior produce el resultado que se muestra en la siguiente captura de pantalla.

Git checkout navega entre la rama, actualiza los archivos en el directorio de trabajo e informa a Git que registre las confirmaciones en esa rama.

Cuando modifica el código en el sistema de archivos local, puede verificar los cambios dentro del directorio usando el siguiente comando.

$ git diff

En el directorio del proyecto, modificaremos algunos cambios en el archivo llamado Example/Example.hooks.phpy ejecute el comando anterior. Obtendremos el resultado como se muestra en la siguiente captura de pantalla.

Puede verificar los cambios realizados en los archivos o el directorio usando el siguiente comando.

$ git status

El comando anterior permite ver qué cambios se han realizado, cuáles no y qué archivos no son rastreados por Git.

A continuación, puede agregar los cambios en el directorio de trabajo y actualizar el archivo en la siguiente confirmación usando el siguiente comando.

$ git add Example/Example.hooks.php

Después de agregar el archivo, ejecute nuevamente el comando git status para revisar los cambios agregados al área de ensayo como se muestra en la siguiente captura de pantalla.

Puede ver la diferencia entre el índice y su última confirmación, y qué contenidos se han organizado, usando el siguiente comando.

$ git diff --cached

Puede enviar los cambios al directorio remoto desde el repositorio local usando el siguiente comando.

$ git commit

Cuando ejecute el comando anterior, le pedirá que agregue el mensaje de confirmación para sus cambios. Otras personas verán este mensaje cuando envíe la confirmación al otro repositorio.

Agregue el mensaje de confirmación y ejecute el comando nuevamente como git commit , que mostrará el mensaje de confirmación como se muestra en la siguiente captura de pantalla.

Debe revisar los cambios en Gerrit antes de fusionarlos en el maestro. Se pueden sincronizar los cambios que se han producido en el maestro. Utilice el siguiente comando dentro de la rama en la que ha estado trabajando.

$ git pull --rebase origin master
  • El comando anterior obtendrá los cambios o confirmaciones de la rama remota y volverá a basar las confirmaciones en la parte superior del maestro.

  • Cuando haya terminado con los cambios y haya vuelto a basar las confirmaciones, puede enviar su conjunto de cambios a Gerrit para su revisión.

  • Git pull --rebase se usa a menudo cuando los cambios no merecen una rama separada.

  • Git pull es una combinación de git fetch y git merge; donde como git pull --rebase es una combinación de git fetch y git rebase.

Primero, ejecute el comando como git pull origin master como se muestra en la siguiente captura de pantalla.

Ahora use el comando como git rebase master para reajustar las confirmaciones como se muestra en la siguiente captura de pantalla.

Puede enviar los parches para su revisión utilizando el git-reviewmando. El conjunto de cambios se puede enviar a Gerrit, ejecutando elgit review -R comando como se muestra en la siguiente captura de pantalla.

los -R La opción informa a git-review que no complete la rebase antes de enviar los cambios de git a Gerrit.

Puede enviar el código a otra rama en lugar del maestro, utilizando el siguiente comando.

git review name_of_branch

También es posible enviar el código a un control remoto diferente, usando el siguiente comando.

git review -r name_of_remote

Los cambios se pueden ver en el panel de Gerrit haciendo clic en este enlace .

Haga clic en el enlace del nombre del autor modificado y obtendrá la siguiente captura de pantalla.

Haga clic en el enlace de difusión para ver los archivos modificados con otros detalles, como se muestra en la siguiente captura de pantalla.

Puede editar el proyecto a través de la interfaz web después de iniciar sesión en la cuenta de Gerrit como se muestra en los siguientes pasos.

Step 1- Vaya al panel de Gerrit haciendo clic en este enlace . Obtendrá la siguiente captura de pantalla.

Step 2 - A continuación, haga clic en el mediawiki/extensions/examplesenlace especificado en la columna Proyecto .

Step 3- Haga clic en el enlace General en la barra de herramientas como se muestra en la siguiente captura de pantalla.

Step 4- Cuando abra el enlace General , mostrará una captura de pantalla como la siguiente.

Step 5- Haga clic en el botón Crear cambio y se abrirá una ventana emergente con algunos detalles como se muestra en la siguiente captura de pantalla.

Step 6- Ingrese la información y haga clic en el botón Crear .

Después de crear el cambio, mostrará la información como se muestra en la siguiente captura de pantalla.

Step 7- Haga clic en Editar y luego en Agregar . Ahora seleccione el archivo que desea editar. Aquí hemos seleccionado el archivoExample/i18n/en.json.

Cuando abra el archivo, mostrará los datos json como se especifica en la siguiente captura de pantalla.

Step 8- Haga clic en Guardar y luego en el botón Cerrar .

Step 9- Finalmente haga clic en el botón Publicar para publicar el archivo editado

Step 10- Puede cambiar el mensaje de confirmación haciendo clic en el enlace Confirmar mensaje como se muestra en la siguiente captura de pantalla.

Step 11- Presione e en el teclado y agregue información adicional, si desea hacer clic en Guardar y luego en el botón Cerrar .

La revisión de código es una parte importante del flujo de trabajo en Gerrit. El concepto básico es que el código debe revisarse antes de fusionarse.

El flujo de trabajo del código para MediaWiki se puede revisar antes de fusionarlo y también se pueden revisar las extensiones que personalizan el aspecto y el funcionamiento de MediaWiki. Hay un caso especial en el que puede impulsar las confirmaciones de internacionalización y localización .

Puede enviar todas las confirmaciones a una rama remota cuando finalice el desarrollo. Alguien obtendrá los cambios en local y fusionará esos cambios recuperados en el maestro local creando una confirmación de fusión. Puede enviar estos cambios arefs/for/master.

Propietario del proyecto significa que el proyecto pertenece a la persona mencionada. Los propietarios del proyecto es un grupo virtual en el que no puede agregar miembros u otros grupos en él. El propietario del proyecto proporciona derechos de acceso para permitir permisos sobre el proyecto a diferentes grupos.

Puede ver los derechos de acceso de su proyecto siguiendo los siguientes pasos.

Step 1- Abra el panel de Gerrit haciendo clic en este enlace .

Step 2- Haga clic en Proyectos → opción Lista . Busque el proyecto en su lista de proyectos y haga clic en él como se muestra en la siguiente captura de pantalla.

Step 3- Cuando abra su proyecto, haga clic en la opción Acceso como se muestra en la siguiente captura de pantalla.

Step 4- Haga clic en la opción de editar . Puede cambiar los derechos de acceso haciendo clic en el menú desplegable. Haga clic en el botón Guardar cambios como se muestra en la siguiente captura de pantalla.

Cualquiera puede revisar el código y comentarlo en Gerrit. Considere los siguientes pasos:

Step 1 - Inicie sesión en Gerrit para abrir el panel de Gerrit como se especifica en el capítulo anterior.

Step 2 - Ahora, haga clic en cualquier tema que contenga el proyecto Gerrit, rama, fecha de actualización, etc., como se muestra en la siguiente captura de pantalla.

Step 3- A continuación, mostrará una pantalla. Haga clic en la opción Confirmar mensaje como se muestra en la siguiente captura de pantalla.

Los campos importantes del conjunto de cambios son como Revisores, Agregar revisor, En paralelo, etc. Comparar conjuntos de parches incluye seleccionar la lista del historial de versiones anteriores, expandir los detalles del conjunto de parches más nuevos, etc. Revisar y fusionar o rechazar el código incluye botón de abandono de cambio, botón de envío de parche, etc. que no están presentes en la versión actual de Gerrit.