aboutsummaryrefslogtreecommitdiff
path: root/pt-br/setup/develop/repo.html
blob: 530f892d5a464ab99c57f8867c2b5804e9e59668 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
<html devsite><head>
    <title>Referência do comando do repo</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>O uso do repo assume o seguinte formato: </p>
<pre class="devsite-terminal devsite-click-to-copy">
repo <var>&lt;COMMAND&gt; &lt;OPTIONS&gt;</var>
</pre>
<p>Os elementos opcionais são mostrados entre colchetes [ ]. Por exemplo, muitos comandos aceitam uma lista de projetos como um argumento. Você pode especificar a lista de projetos como uma lista de nomes ou uma lista de caminhos para os diretórios de origem locais dos projetos:</p>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">repo sync [<var>&lt;PROJECT0&gt; &lt;PROJECT1&gt; ... &lt;PROJECTN&gt;</var>]</code>
<code class="devsite-terminal">repo sync [<var>&lt;/PATH/TO/PROJECT0&gt; ... &lt;/PATH/TO/PROJECTN&gt;</var>]</code>
</pre>

<h2 id="help">help</h2>
<p>Depois que o repo estiver instalado, você poderá encontrar a documentação mais recente, começando com um resumo de todos os comandos, executando:</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo help
</pre>
<p>Encontre informações sobre qualquer comando executando isto em uma árvore de repo:</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo help <var>&lt;COMMAND&gt;</var>
</pre>

<p>O comando a seguir, por exemplo, produz uma descrição e uma lista de opções para o argumento <code>init</code> do repo, que inicializa o repo no diretório atual. Consulte <a href="#init">init</a> para ver mais detalhes.</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo help init
</pre>

<h2 id="init">init</h2>
<pre class="devsite-terminal devsite-click-to-copy">repo init -u <var>&lt;URL&gt;</var> [<var>&lt;OPTIONS&gt;</var>]
</pre>
<p>Instala o repo no diretório atual. Isso cria um diretório <code>.repo/</code>, que contém repositórios Git para o código-fonte do repo e os arquivos padrão de manifesto do Android. O diretório <code>.repo/</code> também contém <code>manifest.xml</code>, que é um symlink para o manifesto selecionado no diretório <code>.repo/manifests/</code>. Consulte <a href="https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md" class="external">manifest-format.md</a> para ver instruções sobre como atualizar o manifesto.</p>
<p>Opções:</p>
<ul>
<li>
<p><code>-u</code>: especifica um URL a partir do qual é possível recuperar um repositório de manifesto. O manifesto comum pode ser encontrado em <code>https://android.googlesource.com/platform/manifest</code></p>
</li>
<li>
<p><code>-m</code>: seleciona um arquivo de manifesto no repositório. Se nenhum nome de manifesto for selecionado, o padrão será default.xml. </p>
</li>
<li>
<p><code>-b</code>: especifica uma revisão, isto é, um branch de manifesto específico.</p>
</li>
</ul>
<p class="note"><strong>Observação</strong>: para todos os comandos repo restantes, o diretório de trabalho atual precisa ser o diretório pai de <code>.repo/</code> ou um subdiretório do diretório pai.</p>

<h2 id="sync">sync</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo sync [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Faz o download de novas alterações e atualiza os arquivos de trabalho no ambiente local. Se você executar <code>repo sync</code> sem nenhum argumento, ele sincronizará os arquivos para todos os projetos.</p>
<p>Quando você executa <code>repo sync</code>, acontece o seguinte:</p>
<ul>
<li>
<p>Se o projeto nunca foi sincronizado, o <code>repo sync</code> será equivalente ao <code>git clone</code>. Todos os branches do repositório remoto são copiados para o diretório do projeto local.</p>
</li>
<li>
<p>Se o projeto já foi sincronizado uma vez, o <code>repo sync</code> é equivalente a:</p>
<pre><code>git remote update
git rebase origin/<var>&lt;BRANCH&gt;</var>
</code></pre>
<p>onde <code>&lt;BRANCH&gt;</code> é o branch recebido no momento no diretório do projeto local. Se o branch local não estiver rastreando um branch no repositório remoto, nenhuma sincronização ocorrerá no projeto.</p>
</li>
<li>
<p>Se a operação de realocação do git resultar em conflitos de mesclagem, você precisará usar os comandos normais do Git (por exemplo, <code>git rebase --continue</code>) para resolver os conflitos.</p>
</li>
</ul>
<p>Após uma <code>repo sync</code> bem-sucedida, o código será atualizado nos projetos especificados com o código no repositório remoto.</p>
<p>Opções:</p>
<ul>
<li>
<p><code>-d</code>: alterna os projetos especificados de volta para a revisão de manifesto.  É útil se o projeto está em um branch de tópicos no momento, mas a revisão de manifesto é temporariamente necessária.</p>
</li>
<li>
<p><code>-s</code>: sincroniza para uma versão válida conhecida, conforme especificado pelo elemento do servidor do manifesto no manifesto atual.</p>
</li>
<li>
<p><code>-f</code>: prossegue com a sincronização de outros projetos mesmo que a sincronização de um projeto falhe.</p>
</li>
</ul>

<h2 id="upload">upload</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo upload [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Para os projetos especificados, o repo compara os branches locais com os branches remotos atualizados durante a última sincronização do repo. O repo solicitará que você selecione um ou mais branches que ainda não foram enviados para análise.</p>
<p>Depois que você selecionar um ou mais branches, todas as confirmações dos branches selecionados serão transmitidas para o Gerrit por uma conexão HTTPS. Será preciso configurar uma senha HTTPS para ativar a autorização de upload. Visite o <a href="https://android-review.googlesource.com/new-password">Gerador de senhas</a> para gerar um novo par de nome de usuário/senha para usar em HTTPS.</p>
<p>Quando o Gerrit receber os dados do objeto no servidor, ele transformará cada confirmação em uma alteração para que os revisores possam comentar em cada uma delas individualmente. Para combinar várias confirmações de "checkpoint" juntas em uma única confirmação, use a realocação do git -i antes de fazer upload do repo.</p>
<p>Se você fizer upload do repo sem nenhum argumento, ele pesquisará todos os projetos em busca de alterações no upload.</p>
<p>Para fazer edições nas alterações após o upload, você precisará usar uma ferramenta como <code>git rebase -i</code> ou <code>git commit --amend</code> para atualizar suas confirmações locais.  Depois que suas edições forem concluídas:</p>
<ul>
<li>
<p>verifique se o branch atualizado é o branch recebido atual;</p>
</li>
<li>
<p>para cada confirmação na série, insira o código de alteração do Gerrit entre colchetes:</p>
<pre><code># Replacing from branch foo
[ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
[ 2829 ] ec18b4ba Update proto client to support patch set replacments
# Insert change numbers in the brackets to add a new patch set.
# To create a new change record, leave the brackets empty.
</code></pre>
</li>
</ul>
<p>Depois que o upload for concluído, as alterações terão um conjunto de patches adicional.</p>
<p>Se você quiser fazer upload apenas do branch do Git recebido no momento, use o sinalizador <code>--current-branch</code> (ou a abreviação <code>--cbr</code>).</p>

<h2 id="diff">diff</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo diff [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Mostra alterações pendentes entre a confirmação e a árvore de trabalho usando <code>git diff</code>. </p>

<h2 id="download">download</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo download <var>&lt;TARGET&gt; &lt;CHANGE&gt;</var>
</pre>
<p>Faz o download da alteração especificada no sistema de revisão e a disponibiliza no diretório de trabalho local do seu projeto.</p>
<p>Por exemplo, para fazer o download da <a href="https://android-review.googlesource.com/23823">alteração 23823</a> para seu diretório de plataforma/versão:</p>
<pre class="devsite-terminal devsite-click-to-copy">
repo download platform/build 23823
</pre>
<p>Um <code>repo sync</code> precisa remover efetivamente as confirmações recuperadas por meio de <code>repo download</code>. Ou você pode receber o branch remoto, ou seja, <code>git checkout m/master</code>.</p>
<p class="note"><strong>Observação</strong>: há um pequeno atraso no espelhamento entre o instante em que uma alteração fica visível na Web no <a href="https://android-review.googlesource.com/">Gerrit</a> e aquele em que o <code>repo download</code> é capaz de encontrá-la para todos os usuários. Isso acontece por atrasos de replicação para todos os servidores do mundo.</p>

<h2 id="forall">forall</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo forall [<var>&lt;PROJECT_LIST&gt;</var>] -c <var>&lt;COMMAND&gt;</var>
</pre>
<p>Executa o comando shell fornecido em cada projeto.  As seguintes variáveis de ambiente adicionais são disponibilizadas pelo <code>repo forall</code>:</p>
<ul>
<li>
<p><code>REPO_PROJECT</code> é definido como o nome exclusivo do projeto.</p>
</li>
<li>
<p><code>REPO_PATH</code> é o caminho relativo para a raiz do cliente.</p>
</li>
<li>
<p><code>REPO_REMOTE</code> é o nome do sistema remoto do manifesto.</p>
</li>
<li>
<p><code>REPO_LREV</code> é o nome da revisão do manifesto, traduzido em um branch de rastreamento local.  Usado se você precisar passar a revisão de manifesto para um comando git executado localmente.</p>
</li>
<li>
<p><code>REPO_RREV</code> é o nome da revisão do manifesto, exatamente como está escrito nele.</p>
</li>
</ul>
<p>Opções:</p>
<ul>
<li>
<p><code>-c</code>: comando e argumentos a serem executados. O comando é avaliado por meio de <code>/bin/sh</code> e qualquer argumento depois dele é passado como parâmetro de posicionamento do shell.</p>
</li>
<li>
<p><code>-p</code>: mostra os cabeçalhos do projeto antes da saída do comando especificado.  Isso é conseguido com a vinculação de pipes aos streams stdin, stdout e sterr do comando e com o encadeamento de toda a saída para um stream contínuo que é exibido em uma sessão de uma única página.</p>
</li>
<li>
<p><code>-v</code>: mostra as mensagens que o comando escreve para stderr.  </p>
</li>
</ul>

<h2 id="prune">prune</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo prune [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Descarta (exclui) tópicos que já estão mesclados.</p>

<h2 id="start">start</h2>
<pre class="devsite-terminal devsite-click-to-copy">repo start <var>&lt;BRANCH_NAME&gt;</var> [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Inicia um novo branch para desenvolvimento, começando pela revisão especificada no manifesto.</p>
<p>O argumento <code>&lt;BRANCH_NAME&gt;</code> precisa fornecer uma breve descrição da alteração que você está tentando fazer nos projetos. Se você não sabe, considere usar o nome padrão.</p>
<p>O <code>&lt;PROJECT_LIST&gt;</code> especifica quais projetos participarão desse branch de tópico. </p>
<p class="note"><strong>Observação</strong>: "." é um atalho útil para o projeto no diretório de trabalho atual.</p>

<h2 id="status">status</h2>
<pre class="devsite-terminal devsite-click-to-copy">
repo status [<var>&lt;PROJECT_LIST&gt;</var>]
</pre>
<p>Compara a árvore de trabalho à área de organização (índice) e à confirmação mais recente nesse branch (HEAD) em cada projeto especificado.  Exibe uma linha de resumo para cada arquivo em que há uma diferença entre esses três estados.</p>
<p>Para ver o status apenas para o branch atual, execute <code>repo status</code>. As informações de status serão listadas por projeto. Para cada arquivo no projeto, é usado um código de duas letras:</p>
<p>Na primeira coluna, uma letra maiúscula indica como a área de organização difere do último estado confirmado.</p>
<table>
<thead>
<tr>
<th>letra</th>
<th>significado</th>
<th>descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td>-</td>
<td>nenhuma alteração</td>
<td>o mesmo no HEAD e no índice</td>
</tr>
<tr>
<td>A</td>
<td>adicionado</td>
<td>ausente no HEAD, mas presente no índice</td>
</tr>
<tr>
<td>M</td>
<td>modificado</td>
<td>presente no HEAD, modificado no índice</td>
</tr>
<tr>
<td>D</td>
<td>excluído</td>
<td>presente no HEAD, mas não no índice</td>
</tr>
<tr>
<td>R</td>
<td>renomeado</td>
<td>ausente no HEAD, caminho alterado no índice</td>
</tr>
<tr>
<td>C</td>
<td>copiado</td>
<td>ausente no HEAD, copiado de outro no índice</td>
</tr>
<tr>
<td>T</td>
<td>modo alterado</td>
<td>mesmo conteúdo no HEAD e no índice, modo alterado</td>
</tr>
<tr>
<td>U</td>
<td>não mesclado</td>
<td>conflito entre o HEAD e o índice, resolução necessária</td>
</tr>
</tbody>
</table>
<p>Na segunda coluna, uma letra minúscula indica como o diretório de trabalho é diferente do índice.</p>
<table>
<thead>
<tr>
<th>letra</th>
<th>significado</th>
<th>descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td>-</td>
<td>novo/desconhecido</td>
<td>ausente no índice, presente na árvore de trabalho</td>
</tr>
<tr>
<td>m</td>
<td>modificado</td>
<td>presente no índice e na árvore de trabalho, modificado</td>
</tr>
<tr>
<td>d</td>
<td>excluído</td>
<td>presente no índice, mas não na árvore de trabalho</td>
</tr>
</tbody>
</table>

</body></html>