<html devsite><head>
    <title>Ver patches</title>
    <meta name="project_path" value="/_project.yaml"/>
    <meta name="book_path" value="/_book.yaml"/>
  </head>
  <body>
  <!--
      Copyright 2017 The Android Open Source Project

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->

    <p>
      Se você quiser ver todos os patches para o Android Open Source Project, ou se estiver revisando ou verificando uma alteração, procure no <a href="https://www.google.com/url?sa=D&q=https%3A%2F%2Fandroid-review.googlesource.com%2F%23%2Fq%2Fstatus%3Aopen%2BOR%2Bstatus%3Aclosed">AOSP Gerrit</a>. Para ver mais informações sobre como encontrar uma alteração específica, consulte <a href="https://gerrit-review.googlesource.com/Documentation/user-search.html">Análise de código no Gerrit: como pesquisar alterações</a> (link em inglês).
    </p>

    <h2 id="reviewing-a-change">Como revisar uma alteração</h2>

      <p>
        Se você for designado como <em>Revisor</em> de uma alteração, precisará determinar o seguinte:
      </p>

      <ul>
        <li>Essa alteração se encaixa no propósito declarado do projeto?</li>
        <li>Essa alteração é válida dentro da arquitetura existente do projeto?
        </li>
        <li>Essa alteração introduz falhas de design que causarão problemas no futuro?</li>
        <li>Essa alteração segue as práticas recomendadas estabelecidas para o projeto?</li>
        <li>Essa alteração é uma boa maneira de executar a função descrita?</li>
        <li>Essa alteração introduz algum risco de segurança ou instabilidade?</li>
      </ul>

      <p>
        Se você aprovar a alteração, marque-a no Gerrit com LGTM (sigla em inglês de "Tudo certo para mim").
      </p>

    <h2 id="verifying-a-change">Como verificar uma alteração</h2>

      <p>
        Se você for designado para ser o <em>Verificador</em> de uma alteração, precisará fazer o seguinte:
      </p>

      <ul>
        <li>Aplicar patches da alteração no seu cliente local usando um dos comandos de Download.</li>
        <li>Criar e testar a alteração.</li>
        <li>Selecionar o botão <strong>Reply</strong> (Responder) no Gerrit. Isso abrirá uma caixa de comentários em que é possível marcar a alteração como <em>Verified</em> (Verificada) ou não, além de adicionar uma mensagem explicando quais problemas foram identificados.</li>
      </ul>

    <h2 id="downloading-changes-from-gerrit">Como fazer o download de alterações do Gerrit
    </h2>

      <p>
        Um envio que foi verificado e mesclado será transferido por download com a próxima <code>repo sync</code>. Se você quiser fazer o download de uma alteração específica que ainda não foi aprovada, execute
      </p>

      <pre class="devsite-terminal devsite-click-to-copy">
repo download <var>TARGET CHANGE</var></pre>

      <p> onde <code><var>TARGET</var></code> é o diretório local em que a alteração pode ser transferida por download e <code><var>CHANGE</var></code> é o número da alteração listado no Gerrit. Para ver mais informações, consulte o artigo <a href="../develop/repo.html">Referência de repo</a>.
      </p>

    <h2 id="how-do-i-become-a-verifier-or-reviewer">Como posso me tornar um Verificador ou Revisor?</h2>

      <p>
        Em resumo, contribua com código de alta qualidade para um ou mais dos projetos do Android. Para ver mais detalhes sobre as diferentes funções na comunidade do Android Open Source e quem as exerce, consulte <a href="../start/roles.html">Funções do projeto</a>.
      </p>

    <h2 id="diffs-and-comments">Diferenças e comentários</h2>

      <p>
        Para abrir os detalhes da alteração no Gerrit, clique no <em>número de identificação</em> ou <em>assunto</em> de uma alteração. Para comparar o código estabelecido com o atualizado, clique no nome do arquivo em <em>Side-by-side diffs</em> (Diferenças lado a lado).
      </p>

    <h2 id="adding-comments">Como adicionar comentários</h2>

      <p>
        Qualquer pessoa na comunidade pode usar o Gerrit para adicionar comentários in-line aos envios de código. Um bom comentário será relevante para a linha ou seção do código à qual ele está anexado no Gerrit. Ele pode ser uma sugestão breve e construtiva sobre como uma linha de código pode ser melhorada, ou uma explicação do autor sobre o motivo para o código fazer sentido da maneira como está.
      </p>

      <p>
        Para adicionar um comentário in-line, clique duas vezes na linha relevante do código e escreva seu comentário na caixa de texto que se abre. Quando você clicar em <strong>Save</strong> (Salvar), somente você poderá ver o comentário.
      </p>

      <p>
        Para publicar seus comentários para que outras pessoas que usam o Gerrit possam vê-los, clique no botão "Publish Comments" (Publicar comentários). Seus comentários serão enviados por e-mail para todas as partes relevantes para essa alteração, incluindo o proprietário da alteração, o usuário que fez o envio do patch (caso seja diferente do proprietário) e todos os revisores atuais.
      </p>

</body></html>