Trabalhando com Gerrit

Configuração de conta

  1. Inscrever-se com o seu Google ou Github ou Git.jami.net

  2. Você também precisará carregar uma chave SSH para poder fazer o commit das alterações para revisão.

  3. Não se esqueça de selecionar um nome de usuário.

  4. Finalmente, o endereço de e-mail especificado na sua configuração git deve corresponder a um endereço de e-mail registrado com a sua conta Gerrit.

Nota para os funcionários do Savoir-faire Linux: continue a usar o seu endereço de e-mail @savoirfairelinux.com.

Para conhecer o seu Git Config

git config --list

Para testar o seu acesso SSH

Para verificar se o seu acesso SSH está configurado corretamente, execute o seguinte comando:

ssh -p 29420 <nome do usuário>@review.jami.net

é o seu nome de usuário Gerrit, que você deveria ter definido durante a criação da conta.

If your access is granted, you should see a message like:

****    Welcome to Gerrit Code Review    ****

Hi, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://<username>@review.jami.net:29420/REPOSITORY_NAME.git

Connection to review.jami.net closed.

Configuração do Git

Gerrit é o repositório oficial do git.

Para atualizar a configuração

Você deve atualizar suas informações remotas para usar agora o repositório Gerrit. Para fazer isso, atualize sua URL de origem:

git remote set-url origin ssh://<nome de usuário>@review.jami.net:29420/<nome do projeto>

Substituir o <nome do projeto> pelo projeto correto (exemplo: jami-daemon)

Ou clone o repositório existente se quiser começar de novo.

Para empurrar por padrão em refs/for/master

Você pode configurar git para criar automaticamente uma revisão quando uma mudança é empurrada.

git config remote.origin.push HEAD:refs/for/master

Para criar a revisão

Ao chegarmos a este ramo mágico, automaticamente será criada uma revisão sobre o Gerrit.

git push origin HEAD:refs/for/master

Se você configurou o padrão para refs/for/master como descrito acima, simplesmente

git push

Se o HEAD atualmente aponta para o ramo com os compromissos que você gostaria de empurrar. Idealmente, você deve trabalhar em um recurso / ramo de bug para o problema em questão. Então você pode fazer:

git origem <bugfix_branchname>:refs/for/master

Se esta é a primeira vez que você pressionou, você será solicitado a instalar um gancho pós-comitamento para inserir um ID de mudança em sua mensagem de compromissos. Gerrit precisa disso para rastrear os conjuntos de parches e rejeitará os empurrões até que você o instale. Basta copiar e colar o comando para instalar o gancho conforme instruído por Gerrit, e alterar seus compromissos.

Para empurrar um patch privado

Pode-se empurrar um trabalho em andamento (também chamado de projecto) pressionando para refs/for/master%private

Por exemplo, você pode querer um controle remoto “privado” para empurrar para; abrir <project_dir>/.git/config e adicionar:

[remote "private"]

    url = ssh://<username>@review.jami.net:29420/jami-daemon
    push = HEAD:refs/for/master%private

Então:

git push private

O trabalho privado é igual ao conjunto de patches, exceto que não são visíveis para os outros por padrão e não desencadeiam nenhuma construção Jenkins.