Gerrit - Guia rápido

Gerrit é uma ferramenta de revisão de código baseada na web que é integrada ao Git e construída sobre o sistema de controle de versão Git (ajuda os desenvolvedores a trabalharem juntos e manterem o histórico de seu trabalho). Ele permite mesclar mudanças no repositório Git quando você terminar as revisões de código.

Gerrit foi desenvolvido por Shawn Pearce no Google e é escrito em Java, Servlet, GWT (Google Web Toolkit). A versão estável do Gerrit é 2.12.2 e publicada em 11 de março de 2016, licenciada sob a licença Apache v2 .

Por que usar o Gerrit?

A seguir estão alguns motivos pelos quais você deve usar o Gerrit.

  • Você pode encontrar facilmente o erro no código-fonte usando Gerrit.

  • Você pode trabalhar com Gerrit, se tiver um cliente Git regular; não há necessidade de instalar nenhum cliente Gerrit.

  • Gerrit pode ser usado como um intermediário entre desenvolvedores e repositórios git.

Características do Gerrit

  • Gerrit é um sistema de controle de versão Git gratuito e de código aberto.

  • A interface do usuário do Gerrit é formada no Google Web Toolkit .

  • É uma estrutura leve para revisar cada commit.

  • Gerrit atua como um repositório, o que permite enviar o código e criar a revisão para o seu commit.

Vantagens do Gerrit

  • Gerrit fornece controle de acesso para repositórios Git e front-end da web para revisão de código.

  • Você pode enviar o código sem usar ferramentas de linha de comando adicionais.

  • Gerrit pode permitir ou recusar a permissão no nível do repositório e até o nível do branch.

  • Gerrit é compatível com Eclipse.

Desvantagens de Gerrit

  • Revisar, verificar e reenviar os commits de código retarda o tempo de lançamento no mercado.

  • Gerrit pode funcionar apenas com Git.

  • Gerrit é lento e não é possível alterar a ordem de classificação na qual as alterações são listadas.

  • Você precisa de direitos de administrador para adicionar repositório no Gerrit.

Antes de usar o Gerrit, você deve instalar o Git e realizar algumas mudanças básicas na configuração. A seguir estão as etapas para instalar o cliente Git em diferentes plataformas.

Instalação do cliente Git

Linux

Você pode instalar o Git no Linux usando a ferramenta de gerenciamento de pacote de software. Por exemplo, se você estiver usando o Fedora, você pode usar como -

sudo yum install git

Se você estiver usando uma distribuição baseada em Debian, como Ubuntu, use o seguinte comando -

sudo apt-get install git

janelas

Você pode instalar o Git no Windows baixando-o do site do Git. Basta acessar o link msysgit.github.io e clicar no botão de download.

Mac

O Git pode ser instalado no Mac usando o seguinte comando -

brew install git

Outra forma de instalar o Git é baixando-o do site do Git. Basta acessar o link de instalação do Git no Mac , que instalará o Git para a plataforma Mac.

Depois de instalar o Git, você precisa personalizar as variáveis ​​de configuração para adicionar suas informações pessoais. Você pode obter e definir as variáveis ​​de configuração usando a ferramenta Git chamada git config junto com a opção -l (esta opção fornece a configuração atual).

git config -l

Ao executar o comando acima, você obterá as variáveis ​​de configuração conforme mostrado na imagem a seguir

Você pode alterar as informações personalizadas a qualquer momento, usando os comandos novamente. No próximo capítulo, você aprenderá como configurar o nome de usuário e o e-mail do usuário usando o comando git config .

Você pode acompanhar cada commit definindo o nome e as variáveis ​​de e- mail . A variável name especifica o nome, enquanto a variável email identifica o endereço de email associado aos commits do Git. Você pode defini-los usando os seguintes comandos -

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

Ao executar os comandos acima, você obterá o nome de usuário e o endereço de e-mail conforme mostrado na imagem a seguir.

SSH significa Secure Shell ou, às vezes, protocolo Secure Socket Shell usado para acessar serviços de rede com segurança de um computador remoto. Você pode definir as chaves SSH para fornecer uma conexão confiável entre o computador e o Gerrit.

Você pode verificar a chave SSH existente em seu computador local usando o seguinte comando no Git Bash -

$ ls ~/.ssh

Depois de clicar no botão Enter, você verá a chave SSH existente, conforme mostrado na imagem a seguir -

Se você não encontrar nenhuma chave SSH existente, será necessário criar uma nova chave SSH.

Gerando Nova Chave SSH

Você pode gerar uma nova chave SSH para autenticação usando o seguinte comando no Git Bash -

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

Se você já tem uma chave SSH, não gere uma nova chave, pois elas serão sobrescritas. Você pode usar o comando ssh-keygen , apenas se tiver instalado o Git com Git Bash.

Quando você executa o comando acima, ele cria 2 arquivos no diretório ~ / .ssh .

  • ~/.ssh/id_rsa - É chave privada ou chave de identificação.

  • ~/.ssh/id_rsa.pub - É uma TV pública.

Você pode adicionar a chave SSH ao agente ssh em diferentes plataformas discutidas mais adiante.

Linux

Use o seguinte comando no sistema Linux para adicionar a chave SSH

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

janelas

Abra a GUI GIT e vá para Help → Show SSH Key conforme mostrado na imagem a seguir.

Em seguida, clique no Copy To Clipboard botão, para copiar a chave para a área de transferência.

Mac

No Mac OS X, você pode copiar o conteúdo de id_rsa.pub para a área de transferência usando o seguinte comando.

$ pbcopy < ~/.ssh/id_rsa.pub

A chave SSH pode ser adicionada à conta Gerrit usando as seguintes etapas -

  • Step 1- Primeiro crie uma conta nos serviços wmflabs.org .

  • Step 3 - Em seguida, no canto superior direito, clique no seu nome de usuário e selecione a opção Configurações.

    Aqui, criamos uma conta com o nome John para fazer uso do Gerrit

  • Step 4 - Clique na opção "Chaves públicas SSH" no menu do lado esquerdo e cole a chave pública SSH no campo.

Você pode adicionar a chave SSH ao Git usando os seguintes comandos -

  • Step 1 - Abra o Git Bash e obtenha o ssh-agent usando o seguinte comando.

$ eval 'ssh-agent'
  • Step 2 - Em seguida, adicione a chave SSH ao agente ssh usando o seguinte comando

$ ssh-add ~/.ssh/id_rsa
  • Step 3 - Agora, execute o ssh usando o seguinte comando, que corresponde à impressão digital SSH usada ao fazer o login pela primeira vez.

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

Na imagem acima, você pode ver que xyz123 é um nome de conta shell de instância, que é usado ao criar uma conta Gerrit e Abc123 é um nome de usuário de sua conta Gerrit.

Você pode baixar o exemplo usando Git junto com o código-fonte de qualquer projeto organizado em gerrit.wikimedia.org usando o seguinte comando Git Bash.

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

O comando git clone clona um diretório em um novo diretório; em outras palavras, obtém uma cópia de um repositório existente . Ao executar o comando acima, você obterá uma captura de tela semelhante à seguinte.

O comando acima clona o repositório de 'exemplos' e recebe os objetos, arquivos, etc. desse repositório e os armazena em seu branch local.

Você pode trabalhar com o Gerrit instalando o git-review em diferentes plataformas, conforme discutido neste capítulo.

janelas

No Windows, você pode instalar o git-review conforme listado nas etapas a seguir.

Step 1- Primeiro instale o Python para instalar o git-review.

Step 2 - Mantenha a instalação do Python no diretório padrão (como C: \ Python27) em vez de instalar em qualquer outro diretório.

Step 3 - Em seguida, defina as variáveis ​​de ambiente para o diretório de scripts Python usando o caminho como C:\Python27\;C:\Python27\Scripts\;

git_review_install

Step 4- Com a versão 2.7, o Python instalará o pip automaticamente. Para uma versão mais antiga do Python 2.7, você pode instalar o pip conforme descrito neste link .

Step 5 - Execute o Git Bash aberto e instale o git-review usando o seguinte comando.

$ pip install git-review

Linux

No Linux, você pode instalar o git-review conforme descrito nas etapas a seguir -

Step 1Os usuários da plataforma Linux não têm acesso root no host compartilhado. Portanto, sem acesso root, você pode instalar git-review localmente no diretório do usuário usando os seguintes comandos -

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

Step 2 - Você pode estender o caminho para os binários locais usando duas maneiras -

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

Step 3 - Agora, use o seguinte comando para configurar o trabalho com Gerrit.

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

Step 4 - Com acesso root, git-review pode ser instalado usando o seguinte comando.

sudo apt-get install git-review

Step 5- Se não houver apt-get após a instalação do Python, use os seguintes comandos.

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

Step 6 - Execute o seguinte comando para trabalhar com Gerrit.

git review -s

Mac OS X

No Mac, você pode instalar o git-review usando as seguintes etapas.

Step 1- Instale o Homebrew a partir deste link.

Step 2 - Em seguida, instale o git-review usando o seguinte comando.

brew install git-review

Gerrit é construído em cima do sistema de controle de versão Git, que extrai o código de outro host, enviando alterações no código, enviando o código para revisão, etc. O nome remoto padrão do Git é origin e dizemos ao git-review para usar isso nomeie 'origem' usando o seguinte comando.

$ git config --global gitreview.remote origin

O Git-review pode ser usado para enviar branches do git para o Gerrit para revisão. Você pode configurar o gitreview usando o seguinte comando no diretório do projeto.

$ git review -s

O Git-review pode ser usado como a ferramenta de linha de comando para configurar o clone do Git, enviar os branches para o Gerrit, buscar os arquivos existentes, etc. O Git-review procura o remoto chamado gerrit para trabalhar com o Gerrit por padrão.

Se o git-review encontrar o remoto Gerrit, ele enviará o branch para HEAD:refs/for/masterno local remoto e se não houver acesso remoto Gerrit, git-review procurará o .gitreview arquivo na raiz do repositório junto com as informações remotas gerrit.

Git-review processa o seguinte internamente -

  • Ele irá verificar se o repositório remoto funciona ou não para enviar os branches.

  • Se não houver acesso remoto Gerrit, ele solicitará o nome de usuário e tentará acessar o repositório novamente.

  • Ele criará um acesso remoto chamado gerrit que aponta para Gerrit.

  • Ele instalará o gancho commit-msg.

Você pode atualizar o branch master usando o seguinte comando. O comando git-pull busca em outro branch local ou se integra a outro repositório.

git pull origin master
  • O comando irá puxar as alterações do remoto de origem (URL do remoto para buscar), branch master e mesclar as alterações para o branch local com check-out.

  • O mestre de origem é uma cópia em cache da última retirada da origem.

  • Git pull é uma combinação de git fetch (busca novos commits do repositório remoto) e git merge (integra novos commits no branch local).

  • Git pull mescla o branch local com o branch remoto por padrão.

Você pode criar uma ramificação na máquina local usando o seguinte comando.

$ git checkout -b name_of_branch origin/master

O comando acima cria um novo ramo, conforme mostrado na imagem a seguir.

Aqui, nós usamos branch123como a nova filial local. Você pode mostrar o novo ramo do 'mestre' usando o seguinte comando.

$ git branch

O comando acima produz o resultado mostrado na imagem a seguir.

O checkout do Git navega entre o branch, atualiza os arquivos no diretório de trabalho e informa o Git para registrar os commits naquele branch.

Ao modificar o código no sistema de arquivos local, você pode verificar as alterações no diretório usando o seguinte comando.

$ git diff

No diretório do projeto, vamos modificar algumas mudanças no arquivo chamado Example/Example.hooks.phpe execute o comando acima. Obteremos o resultado conforme mostrado na imagem a seguir.

Você pode verificar as alterações feitas nos arquivos ou no diretório usando o seguinte comando.

$ git status

O comando acima permite ver quais mudanças foram testadas, quais não foram e quais arquivos não são rastreados pelo Git.

Em seguida, você pode adicionar as mudanças no diretório de trabalho e atualizar o arquivo no próximo commit usando o seguinte comando.

$ git add Example/Example.hooks.php

Depois de adicionar o arquivo, execute novamente o comando git status para revisar as alterações adicionadas à área de teste, conforme mostrado na captura de tela a seguir.

Você pode ver a diferença entre o índice e seu último commit, e quais conteúdos foram testados, usando o seguinte comando.

$ git diff --cached

Você pode enviar por push as alterações para o diretório remoto do repositório local usando o seguinte comando.

$ git commit

Quando você executa o comando acima, ele pedirá para adicionar a mensagem de confirmação para suas alterações. Esta mensagem será vista por outras pessoas quando você enviar o commit para o outro repositório.

Adicione a mensagem de confirmação e execute o comando novamente como git commit , que exibirá a mensagem de confirmação conforme mostrado na captura de tela a seguir.

Você precisa revisar as alterações no Gerrit antes de mesclá-las no mestre. Podem ser sincronizadas as mudanças ocorridas no mestre. Use o seguinte comando no branch em que você está trabalhando.

$ git pull --rebase origin master
  • O comando acima irá buscar as mudanças ou commits do branch remoto e rebase os commits em cima do master.

  • Quando você terminar com as mudanças e rebaseado os commits, você pode enviar seu conjunto de mudanças para Gerrit para revisão.

  • Git pull --rebase é freqüentemente usado quando as mudanças não merecem um branch separado.

  • Git pull é uma combinação de git fetch e git merge; onde as git pull --rebase é uma combinação de git fetch e git rebase.

Primeiro, execute o comando como git pull origin master, conforme mostrado na imagem a seguir.

Agora use o comando como git rebase master para realocar os commits, conforme mostrado na imagem a seguir.

Você pode enviar os patches para revisão usando o git-reviewcomando. O conjunto de mudanças pode ser enviado ao Gerrit, executando ogit review -R comando como mostrado na imagem a seguir.

o -R opção informa ao git-review para não completar o rebase antes de enviar as alterações do git ao Gerrit.

Você pode enviar o código para outro branch em vez do master, usando o seguinte comando.

git review name_of_branch

Também é possível enviar o código para um controle remoto diferente, usando o seguinte comando.

git review -r name_of_remote

As alterações podem ser visualizadas no painel Gerrit clicando neste link .

Clique no link do nome do autor modificado e você obterá a seguinte captura de tela.

Clique no link de difusão para ver os arquivos alterados com outros detalhes, conforme mostrado na imagem a seguir.

Você pode editar o projeto por meio da interface da web após fazer login na conta Gerrit, conforme mostrado nas etapas a seguir.

Step 1- Vá para o painel do Gerrit clicando neste link . Você obterá a seguinte captura de tela.

Step 2 - Em seguida, clique no mediawiki/extensions/exampleslink especificado na coluna Projeto .

Step 3- Clique no link Geral na barra de ferramentas, conforme mostrado na captura de tela a seguir.

Step 4- Ao abrir o link Geral , será exibida uma captura de tela como a seguinte.

Step 5- Clique no botão Criar Alteração e será aberta uma janela pop-up com alguns detalhes, conforme mostrado na imagem a seguir.

Step 6- Insira as informações e clique no botão Criar .

Depois de criar a alteração, ele exibirá as informações conforme mostrado na imagem a seguir.

Step 7- Clique em Editar e em Adicionar . Agora selecione o arquivo que deseja editar. Aqui nós selecionamos o arquivoExample/i18n/en.json.

Quando você abre o arquivo, ele mostra os dados json conforme especificado na imagem a seguir.

Step 8- Clique em Salvar e, em seguida, clique no botão Fechar .

Step 9- Por fim, clique no botão Publicar para publicar o arquivo editado

Step 10- Você pode alterar a mensagem de confirmação clicando no link Mensagem de confirmação, conforme mostrado na imagem a seguir.

Step 11- Pressione e no teclado e adicione algumas informações extras, se desejar Clique em Salvar e, em seguida, clique no botão Fechar .

A revisão do código é uma parte importante do fluxo de trabalho no Gerrit. O conceito básico é que o código deve ser revisado antes de ser mesclado.

O fluxo de trabalho do código para MediaWiki pode ser revisado antes de mesclá-lo e também as extensões podem ser revisadas que personalizam a aparência e o funcionamento do MediaWiki. Há um caso especial em que você pode enviar os commits de internacionalização e localização .

Você pode enviar todos os commits para um branch remoto quando terminar o desenvolvimento. Alguém irá buscar as mudanças no local e mesclá-las no master local criando um commit de mesclagem. Você pode enviar essas mudanças pararefs/for/master.

Proprietário do projeto significa que o projeto pertence à pessoa mencionada. Proprietários de projeto é um grupo virtual ao qual você não pode adicionar membros ou outros grupos. O proprietário do projeto fornece direitos de acesso para permitir permissão no projeto para diferentes grupos.

Você pode visualizar os direitos de acesso do seu projeto usando as seguintes etapas.

Step 1- Abra o painel Gerrit clicando neste link .

Step 2- Clique na opção Projetos → Lista . Pesquise o projeto em sua lista de projetos e clique nele conforme mostrado na captura de tela a seguir.

Step 3- Ao abrir seu projeto, clique na opção Acessar conforme mostrado na imagem a seguir.

Step 4- Clique na opção de edição . Você pode alterar os direitos de acesso clicando no menu suspenso. Clique no botão Salvar alterações conforme mostrado na captura de tela a seguir.

Qualquer pessoa pode revisar o código e comentar sobre o código no Gerrit. Considere as seguintes etapas -

Step 1 - Faça login no Gerrit para abrir o painel do Gerrit conforme especificado no capítulo anterior.

Step 2 - Agora, clique em qualquer assunto que contenha projeto Gerrit, ramo, data de atualização, etc., conforme mostrado na imagem a seguir.

Step 3- Em seguida, ele exibirá uma tela. Clique na opção Commit Message conforme mostrado na captura de tela a seguir.

Os campos importantes do conjunto de mudanças são como Revisores, Adicionar Revisor, Lado a lado, etc. Comparar conjuntos de patches inclui selecionar a lista de histórico da versão antiga, expandir os detalhes do conjunto de patches mais recentes etc. Revisar e mesclar ou rejeitar o código inclui botão de abandono de mudança, botão de envio de patch, etc. que não estão presentes na versão atual do Gerrit.