blob: dda4d2562d1d71841727f2bb928626e0cd78acc9 [file] [log] [blame]
Eric Parkc9931992019-07-29 13:10:53 +09001
Eric Parkc9931992019-07-29 13:10:53 +09002<!doctype html>
3<html lang="en" class="no-js">
4 <head>
5
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
Eric Parkc9931992019-07-29 13:10:53 +09008
9
10
Eric Parkc9931992019-07-29 13:10:53 +090011 <link rel="shortcut icon" href="../../assets/images/favicon.png">
Eric Park8fd7bfb2020-10-02 19:05:33 +090012 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.0.1">
Eric Parkc9931992019-07-29 13:10:53 +090013
14
15
16 <title>Git Started - Team Bliss</title>
17
18
19
Eric Park8fd7bfb2020-10-02 19:05:33 +090020 <link rel="stylesheet" href="../../assets/stylesheets/main.38780c08.min.css">
Eric Parkc9931992019-07-29 13:10:53 +090021
Eric Park8fd7bfb2020-10-02 19:05:33 +090022
23 <link rel="stylesheet" href="../../assets/stylesheets/palette.3f72e892.min.css">
24
Eric Parkc9931992019-07-29 13:10:53 +090025
26
27
Eric Parkc9931992019-07-29 13:10:53 +090028
29
Eric Park8fd7bfb2020-10-02 19:05:33 +090030
Eric Parkc9931992019-07-29 13:10:53 +090031 <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
Eric Park8fd7bfb2020-10-02 19:05:33 +090032 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
33 <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
Eric Parkc9931992019-07-29 13:10:53 +090034
35
Eric Parkc9931992019-07-29 13:10:53 +090036
37
38
39
40
41
42 </head>
43
Eric Parkc9931992019-07-29 13:10:53 +090044
Eric Park8fd7bfb2020-10-02 19:05:33 +090045
46
47
48
49
50 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="none" data-md-color-accent="none">
51
52
Eric Parkc9931992019-07-29 13:10:53 +090053 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
54 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
Eric Park8fd7bfb2020-10-02 19:05:33 +090055 <label class="md-overlay" for="__drawer"></label>
56 <div data-md-component="skip">
57
58
59 <a href="#git-started" class="md-skip">
60 Skip to content
61 </a>
62
63 </div>
64 <div data-md-component="announce">
65
66 </div>
Eric Parkc9931992019-07-29 13:10:53 +090067
68 <header class="md-header" data-md-component="header">
Eric Park8fd7bfb2020-10-02 19:05:33 +090069 <nav class="md-header-nav md-grid" aria-label="Header">
70 <a href="../.." title="Team Bliss" class="md-header-nav__button md-logo" aria-label="Team Bliss">
71
72
73 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 003-3 3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54z"/></svg>
74
75 </a>
76 <label class="md-header-nav__button md-icon" for="__drawer">
77 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
78 </label>
79 <div class="md-header-nav__title" data-md-component="header-title">
80
81 <div class="md-header-nav__ellipsis">
82 <span class="md-header-nav__topic md-ellipsis">
83 Team Bliss
84 </span>
85 <span class="md-header-nav__topic md-ellipsis">
86
87 Git Started
88
89 </span>
Eric Parkc9931992019-07-29 13:10:53 +090090 </div>
Eric Park8fd7bfb2020-10-02 19:05:33 +090091
92 </div>
93
94 <label class="md-header-nav__button md-icon" for="__search">
95 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
96 </label>
97
Eric Parkc9931992019-07-29 13:10:53 +090098<div class="md-search" data-md-component="search" role="dialog">
99 <label class="md-search__overlay" for="__search"></label>
100 <div class="md-search__inner" role="search">
101 <form class="md-search__form" name="search">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900102 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active">
103 <label class="md-search__icon md-icon" for="__search">
104 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
105 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
106 </label>
107 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
108 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
Eric Parkc9931992019-07-29 13:10:53 +0900109 </button>
110 </form>
111 <div class="md-search__output">
112 <div class="md-search__scrollwrap" data-md-scrollfix>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900113 <div class="md-search-result" data-md-component="search-result">
Eric Parkc9931992019-07-29 13:10:53 +0900114 <div class="md-search-result__meta">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900115 Initializing search
Eric Parkc9931992019-07-29 13:10:53 +0900116 </div>
117 <ol class="md-search-result__list"></ol>
118 </div>
119 </div>
120 </div>
121 </div>
122</div>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900123
124
Eric Parkc9931992019-07-29 13:10:53 +0900125 </nav>
126</header>
127
Eric Park8fd7bfb2020-10-02 19:05:33 +0900128 <div class="md-container" data-md-component="container">
129
Eric Parkc9931992019-07-29 13:10:53 +0900130
131
132
Eric Park8fd7bfb2020-10-02 19:05:33 +0900133 <main class="md-main" data-md-component="main">
134 <div class="md-main__inner md-grid">
Eric Parkc9931992019-07-29 13:10:53 +0900135
136
137 <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
138 <div class="md-sidebar__scrollwrap">
139 <div class="md-sidebar__inner">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900140 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
141 <label class="md-nav__title" for="__drawer">
142 <a href="../.." title="Team Bliss" class="md-nav__button md-logo" aria-label="Team Bliss">
Eric Parkc9931992019-07-29 13:10:53 +0900143
Eric Park8fd7bfb2020-10-02 19:05:33 +0900144
145 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 003-3 3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54z"/></svg>
146
Eric Parkc9931992019-07-29 13:10:53 +0900147 </a>
148 Team Bliss
149 </label>
150
151 <ul class="md-nav__list" data-md-scrollfix>
152
153
154
155
156
157
158 <li class="md-nav__item">
Eric Park5e3a1012019-08-12 13:17:03 +0800159 <a href="../.." title="Home" class="md-nav__link">
160 Home
Eric Parkc9931992019-07-29 13:10:53 +0900161 </a>
162 </li>
163
164
165
166
167
168
169
170 <li class="md-nav__item md-nav__item--nested">
171
Eric Park8fd7bfb2020-10-02 19:05:33 +0900172 <input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
Eric Parkc9931992019-07-29 13:10:53 +0900173
174 <label class="md-nav__link" for="nav-2">
175 Bliss OS
Eric Park8fd7bfb2020-10-02 19:05:33 +0900176 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900177 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900178 <nav class="md-nav" aria-label="Bliss OS" data-md-level="1">
Eric Parkc9931992019-07-29 13:10:53 +0900179 <label class="md-nav__title" for="nav-2">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900180 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900181 Bliss OS
182 </label>
183 <ul class="md-nav__list" data-md-scrollfix>
184
185
186
187
188
189
190
191 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900192 <a href="../../Bliss%20OS/" title="Index" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900193 Index
194 </a>
195 </li>
196
197
Eric Park608ce5a2019-08-07 21:27:46 +0800198
199
200
201
202
203 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900204 <a href="../../Bliss%20OS/build-guide/" title="Build Guide" class="md-nav__link">
Eric Park5e3a1012019-08-12 13:17:03 +0800205 Build Guide
206 </a>
207 </li>
208
209
210
211
212
213
214
215 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900216 <a href="../../Bliss%20OS/extras/" title="Extras" class="md-nav__link">
Eric Park608ce5a2019-08-07 21:27:46 +0800217 Extras
218 </a>
219 </li>
220
221
222
223
224
225
226
227 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900228 <a href="../../Bliss%20OS/installation-guide-misc/" title="Installation Guide (Misc)" class="md-nav__link">
Eric Parkd09b00e2020-02-15 11:07:48 +0900229 Installation Guide (Misc)
230 </a>
231 </li>
232
233
234
235
236
237
238
239 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900240 <a href="../../Bliss%20OS/installation-guide-surface-devices/" title="Installation Guide (Surface devices)" class="md-nav__link">
Eric Parkd09b00e2020-02-15 11:07:48 +0900241 Installation Guide (Surface devices)
242 </a>
243 </li>
244
245
246
247
248
249
250
251 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900252 <a href="../../Bliss%20OS/installation-guide/" title="Installation Guide" class="md-nav__link">
Eric Park608ce5a2019-08-07 21:27:46 +0800253 Installation Guide
254 </a>
255 </li>
256
257
258
259
260
261
262
263 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900264 <a href="../../Bliss%20OS/taking-bug-reports/" title="Taking bug reports" class="md-nav__link">
Eric Park0509f652020-03-01 01:54:39 +0900265 Taking bug reports
266 </a>
267 </li>
268
269
270
271
272
273
274
275 <li class="md-nav__item">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900276 <a href="../../Bliss%20OS/troubleshooting/" title="Troubleshooting" class="md-nav__link">
Eric Park608ce5a2019-08-07 21:27:46 +0800277 Troubleshooting
278 </a>
279 </li>
280
281
Eric Parkc9931992019-07-29 13:10:53 +0900282 </ul>
283 </nav>
284 </li>
285
286
287
288
289
290
291
292 <li class="md-nav__item md-nav__item--nested">
293
Eric Park8fd7bfb2020-10-02 19:05:33 +0900294 <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
Eric Parkc9931992019-07-29 13:10:53 +0900295
296 <label class="md-nav__link" for="nav-3">
297 BlissRoms
Eric Park8fd7bfb2020-10-02 19:05:33 +0900298 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900299 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900300 <nav class="md-nav" aria-label="BlissRoms" data-md-level="1">
Eric Parkc9931992019-07-29 13:10:53 +0900301 <label class="md-nav__title" for="nav-3">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900302 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900303 BlissRoms
304 </label>
305 <ul class="md-nav__list" data-md-scrollfix>
306
307
308
309
310
311
312
313 <li class="md-nav__item">
314 <a href="../../BlissRoms/" title="Index" class="md-nav__link">
315 Index
316 </a>
317 </li>
318
319
320
321
322
323
324
325 <li class="md-nav__item">
Eric Park608ce5a2019-08-07 21:27:46 +0800326 <a href="../../BlissRoms/build-guide/" title="Build Guide" class="md-nav__link">
327 Build Guide
Eric Parkc9931992019-07-29 13:10:53 +0900328 </a>
329 </li>
330
331
332
333
334
335
336
337 <li class="md-nav__item">
338 <a href="../../BlissRoms/build-tips/" title="Build Tips" class="md-nav__link">
339 Build Tips
340 </a>
341 </li>
342
343
344 </ul>
345 </nav>
346 </li>
347
348
349
350
351
352
353
354
355
356 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
357
Eric Park8fd7bfb2020-10-02 19:05:33 +0900358 <input class="md-nav__toggle md-toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
Eric Parkc9931992019-07-29 13:10:53 +0900359
360 <label class="md-nav__link" for="nav-4">
361 Common
Eric Park8fd7bfb2020-10-02 19:05:33 +0900362 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900363 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900364 <nav class="md-nav" aria-label="Common" data-md-level="1">
Eric Parkc9931992019-07-29 13:10:53 +0900365 <label class="md-nav__title" for="nav-4">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900366 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900367 Common
368 </label>
369 <ul class="md-nav__list" data-md-scrollfix>
370
371
372
373
374
375
376
377 <li class="md-nav__item">
378 <a href="../" title="Index" class="md-nav__link">
379 Index
380 </a>
381 </li>
382
383
384
385
386
387
388
389
390
391 <li class="md-nav__item md-nav__item--active">
392
Eric Park8fd7bfb2020-10-02 19:05:33 +0900393 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
Eric Parkc9931992019-07-29 13:10:53 +0900394
395
396
397
398 <label class="md-nav__link md-nav__link--active" for="__toc">
399 Git Started
Eric Park8fd7bfb2020-10-02 19:05:33 +0900400 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900401 </label>
402
403 <a href="./" title="Git Started" class="md-nav__link md-nav__link--active">
404 Git Started
405 </a>
406
407
Eric Park8fd7bfb2020-10-02 19:05:33 +0900408<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
Eric Parkc9931992019-07-29 13:10:53 +0900409
410
411
412
413
Eric Park8fd7bfb2020-10-02 19:05:33 +0900414 <label class="md-nav__title" for="__toc">
415 <span class="md-nav__icon md-icon"></span>
416 Table of contents
417 </label>
Eric Parkc9931992019-07-29 13:10:53 +0900418 <ul class="md-nav__list" data-md-scrollfix>
419
420 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800421 <a href="#foreword" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900422 Foreword
423 </a>
424
Eric Park8fd7bfb2020-10-02 19:05:33 +0900425 <nav class="md-nav" aria-label="Foreword">
Eric Parkc9931992019-07-29 13:10:53 +0900426 <ul class="md-nav__list">
427
428 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800429 <a href="#installation" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900430 Installation
431 </a>
432
433</li>
434
435 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800436 <a href="#get-the-terminal-set-up" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900437 Get the terminal set up
438 </a>
439
440</li>
441
442 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800443 <a href="#register-at-gerrit" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900444 Register at Gerrit
445 </a>
446
Eric Park8fd7bfb2020-10-02 19:05:33 +0900447 <nav class="md-nav" aria-label="Register at Gerrit">
Eric Parkc9931992019-07-29 13:10:53 +0900448 <ul class="md-nav__list">
449
450 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800451 <a href="#gerrit-shows-an-error-about-the-key" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900452 Gerrit shows an error about the key!
453 </a>
454
455</li>
456
457 </ul>
458 </nav>
459
460</li>
461
462 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800463 <a href="#reviewing-code" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900464 Reviewing Code
465 </a>
466
Eric Park8fd7bfb2020-10-02 19:05:33 +0900467 <nav class="md-nav" aria-label="Reviewing Code">
Eric Parkc9931992019-07-29 13:10:53 +0900468 <ul class="md-nav__list">
469
470 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800471 <a href="#my-output-is-blank-or-different-why" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900472 My output is blank (or different.) Why?
473 </a>
474
475</li>
476
477 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800478 <a href="#cherry-picking-commits-to-current-branch" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900479 Cherry-picking commits to current branch
480 </a>
481
482</li>
483
484 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800485 <a href="#cherry-picking-commits-to-new-branch" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900486 Cherry-picking commits to new branch
487 </a>
488
489</li>
490
491 </ul>
492 </nav>
493
494</li>
495
496 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800497 <a href="#submitting-code" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900498 Submitting code
499 </a>
500
501</li>
502
503 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800504 <a href="#picking-from-other-sources" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900505 Picking from other sources
506 </a>
507
508</li>
509
510 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800511 <a href="#conclusion" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900512 Conclusion
513 </a>
514
515</li>
516
517 </ul>
518 </nav>
519
520</li>
521
Eric Parkc9931992019-07-29 13:10:53 +0900522 </ul>
523
524</nav>
525
526 </li>
527
528
Eric Park608ce5a2019-08-07 21:27:46 +0800529
530
531
532
533
534 <li class="md-nav__item">
Eric Park8584eda2019-09-02 09:45:55 +0800535 <a href="../maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-nav__link">
536 Maintaining proper authorship
537 </a>
538 </li>
539
540
541
542
543
544
545
546 <li class="md-nav__item">
Eric Park608ce5a2019-08-07 21:27:46 +0800547 <a href="../using-dippy-bird/" title="Using `dippy-bird`" class="md-nav__link">
548 Using `dippy-bird`
549 </a>
550 </li>
551
552
Eric Parkc9931992019-07-29 13:10:53 +0900553 </ul>
554 </nav>
555 </li>
556
557
558
559
560
561
562
563 <li class="md-nav__item md-nav__item--nested">
564
Eric Park8fd7bfb2020-10-02 19:05:33 +0900565 <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
Eric Parkc9931992019-07-29 13:10:53 +0900566
567 <label class="md-nav__link" for="nav-5">
568 Infrastructure
Eric Park8fd7bfb2020-10-02 19:05:33 +0900569 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900570 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900571 <nav class="md-nav" aria-label="Infrastructure" data-md-level="1">
Eric Parkc9931992019-07-29 13:10:53 +0900572 <label class="md-nav__title" for="nav-5">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900573 <span class="md-nav__icon md-icon"></span>
Eric Parkc9931992019-07-29 13:10:53 +0900574 Infrastructure
575 </label>
576 <ul class="md-nav__list" data-md-scrollfix>
577
578
579
580
581
582
583
584 <li class="md-nav__item">
585 <a href="../../infrastructure/" title="Index" class="md-nav__link">
586 Index
587 </a>
588 </li>
589
590
591 </ul>
592 </nav>
593 </li>
594
595
596 </ul>
597</nav>
598 </div>
599 </div>
600 </div>
601
602
603 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
604 <div class="md-sidebar__scrollwrap">
605 <div class="md-sidebar__inner">
606
Eric Park8fd7bfb2020-10-02 19:05:33 +0900607<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
Eric Parkc9931992019-07-29 13:10:53 +0900608
609
610
611
612
Eric Park8fd7bfb2020-10-02 19:05:33 +0900613 <label class="md-nav__title" for="__toc">
614 <span class="md-nav__icon md-icon"></span>
615 Table of contents
616 </label>
Eric Parkc9931992019-07-29 13:10:53 +0900617 <ul class="md-nav__list" data-md-scrollfix>
618
619 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800620 <a href="#foreword" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900621 Foreword
622 </a>
623
Eric Park8fd7bfb2020-10-02 19:05:33 +0900624 <nav class="md-nav" aria-label="Foreword">
Eric Parkc9931992019-07-29 13:10:53 +0900625 <ul class="md-nav__list">
626
627 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800628 <a href="#installation" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900629 Installation
630 </a>
631
632</li>
633
634 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800635 <a href="#get-the-terminal-set-up" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900636 Get the terminal set up
637 </a>
638
639</li>
640
641 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800642 <a href="#register-at-gerrit" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900643 Register at Gerrit
644 </a>
645
Eric Park8fd7bfb2020-10-02 19:05:33 +0900646 <nav class="md-nav" aria-label="Register at Gerrit">
Eric Parkc9931992019-07-29 13:10:53 +0900647 <ul class="md-nav__list">
648
649 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800650 <a href="#gerrit-shows-an-error-about-the-key" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900651 Gerrit shows an error about the key!
652 </a>
653
654</li>
655
656 </ul>
657 </nav>
658
659</li>
660
661 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800662 <a href="#reviewing-code" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900663 Reviewing Code
664 </a>
665
Eric Park8fd7bfb2020-10-02 19:05:33 +0900666 <nav class="md-nav" aria-label="Reviewing Code">
Eric Parkc9931992019-07-29 13:10:53 +0900667 <ul class="md-nav__list">
668
669 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800670 <a href="#my-output-is-blank-or-different-why" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900671 My output is blank (or different.) Why?
672 </a>
673
674</li>
675
676 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800677 <a href="#cherry-picking-commits-to-current-branch" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900678 Cherry-picking commits to current branch
679 </a>
680
681</li>
682
683 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800684 <a href="#cherry-picking-commits-to-new-branch" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900685 Cherry-picking commits to new branch
686 </a>
687
688</li>
689
690 </ul>
691 </nav>
692
693</li>
694
695 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800696 <a href="#submitting-code" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900697 Submitting code
698 </a>
699
700</li>
701
702 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800703 <a href="#picking-from-other-sources" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900704 Picking from other sources
705 </a>
706
707</li>
708
709 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800710 <a href="#conclusion" class="md-nav__link">
Eric Parkc9931992019-07-29 13:10:53 +0900711 Conclusion
712 </a>
713
714</li>
715
716 </ul>
717 </nav>
718
719</li>
720
Eric Parkc9931992019-07-29 13:10:53 +0900721 </ul>
722
723</nav>
724 </div>
725 </div>
726 </div>
727
728
729 <div class="md-content">
730 <article class="md-content__inner md-typeset">
731
732
733
734 <h1 id="git-started">Git Started</h1>
735<h2 id="foreword">Foreword</h2>
736<p>This guide helps people learn <code>git</code> commands and how to get the features you want into your favorite ROM and make your own builds. This will help new people get started and will be a great refresher for veteran <code>git</code> users and has instructions for Arch Linux users as well. The document will be ever-changing and evolving because even we will be learning new material and will be putting it in here.</p>
737<h3 id="installation">Installation</h3>
738<p>In order to use <code>git review</code> we need it installed on our local machine. For Ubuntu we use the package manager to install it.</p>
739<pre><code>sudo apt-get install git-review
740</code></pre>
741<p>Or for Arch based installs, use:</p>
742<pre><code>sudo pacman -S git-review
743</code></pre>
744<h3 id="get-the-terminal-set-up">Get the terminal set up</h3>
745<p>First, let's make sure our local <code>git</code> and Gerrit have the same email address associated.</p>
746<pre><code>cd
747cat .gitconfig
748</code></pre>
749<p>This command should show something along those lines:</p>
750<pre><code>[user]
751email = you@youremail.com
752name = Your Name
753</code></pre>
754<p>Edit any incorrect details. Your email and name is used to sign off commits, various changes, etc, so it is important that they are the same ones found on Gerrit and GitHub.</p>
755<p>Next we will create a SSH key named “gerrit” to communicate with the Gerrit server.</p>
756<pre><code>ssh-keygen -t rsa -C you@youremail.com -f ~/.ssh/gerrit
757</code></pre>
758<p>Again, note the email address must be the same here, your <code>.gitconfig</code>, and on Gerrit.</p>
759<h3 id="register-at-gerrit">Register at Gerrit</h3>
760<p>Open your favorite browser and go to <a href="http://review.blissroms.com">http://review.blissroms.com</a>. You will see a “Sign In” button on the top right - click that and register with GitHub. Please note that you will need to use the same email address that you registered with GitHub for your terminal interactions with Gerrit.</p>
761<p>Now we need to add our SSH key to Gerrit. Your name will be on the top right of the page. Click your name and you should see “Settings”. Once there click on the link “SSH Public Keys” on the left sidebar. Once it loads, click "Add Key" on the right.</p>
762<p>Let's copy the key from the terminal and paste it into the browser.</p>
763<pre><code>cat ~/.ssh/gerrit.pub
764</code></pre>
765<p>This should show something like:</p>
766<pre><code>ssh-rsa AAAABBBBBBBBBBCCCCCCCCCCCCCCCCCCDjhl8768usdfsdfuhf/BlahBlahBlah/ThIs+1s/A/fAk3+k3Y/Hdhs+PlCesTvQqfaqHTHwdzGhn2lKVt14WYvQEDKVM9JoE9e8xarNWYa0ZspB1MGn2RVJ3xRp0+Q/pA237uBCl62yTbVGtKQBZB6Q+7A54z795U+G2wCb1rAQnI5yn5q/pQ4NhB0BLml/QRmjn/S8PldEge9Hfdh4Ifdk4r9DKSiicf7IK56jklDHKkJDFkjh/3345L10sTyre3JOeZyvr5SJdyqMtmMv+uSGF28fgZ6/OEO/yBY/eYEI/XVRDaRRat8nGHGae0T4dx me@myemail.com
767</code></pre>
768<p>Starting with the line beginning with ssh-rsa and ending with the email, paste that bit into the browser and click “Add”.</p>
769<h4 id="gerrit-shows-an-error-about-the-key">Gerrit shows an error about the key!</h4>
770<p>Are you sure you used the correct key? Do not use the "private" key. The private key should be kept private as it is the key that allows you to authenticate yourself against servers like Gerrit. When you authenticate using your private key, the servers send out requests encrypted with your "public" key that only your "private" key can decrypt. This is the basis behind SSH authentication. So keep your private key safe, and try pasting the public key! Most public keys end with the characters <code>.pub</code>.</p>
771<p>Then, add the new SSH key to your local identity in terminal.</p>
772<pre><code>eval `ssh-agent`
773</code></pre>
774<p>This should print off a bunch of lines. We’re doing this to launch the ssh-agent before adding the key.</p>
775<pre><code>ssh-add ~/.ssh/gerrit
776</code></pre>
777<p>This will result in something along the lines of:</p>
778<pre><code>Identity added: /home/yourusername/.ssh/gerrit (/home/yourusername/.ssh/gerrit)
779</code></pre>
780<p>If you don’t get this, and get this instead:</p>
781<pre><code>Could not open a connection to your authentication agent.
782</code></pre>
783<p>Or this:</p>
784<pre><code>Error connecting to agent: No such file or directory.
785</code></pre>
786<p>This is because in recent versions of Ubuntu, you need to change how you launch <code>ssh-agent</code>. Run the command below, then try adding your SSH key again.</p>
787<pre><code>eval “$(ssh-agent)”
788</code></pre>
789<p>Now we should be ready to use <code>git review</code>.</p>
790<h3 id="reviewing-code">Reviewing Code</h3>
791<p>Just <code>cd</code> to your source code directory and find the package you want to look at from Gerrit. I’ll use <code>frameworks/base</code> as an example.</p>
792<pre><code># cd into source code directory
793cd ~/bliss/p9.0
794
795# Find project to work on
796cd frameworks/base
797</code></pre>
798<p>Let’s setup the remote to Gerrit:</p>
799<pre><code>git review -s
800</code></pre>
801<p>This should create a <code>gerrit</code> remote. If you added a passphrase to your SSH key you will have to enter that.</p>
802<p>However, if this command outputs something like this:</p>
803<pre><code>Could not connect to gerrit.
804Enter your gerrit username:
805</code></pre>
806<p>And after you input your username, it shows something like this:</p>
807<pre><code>Trying again with ssh://username@review.blissroms.com:29418/platform_frameworks_base.git
808&lt;traceback object at 0x7f7f95ea9e18&gt;
809We don't know where your gerrit is. Please manually create a remote named "gerrit" and try again.
810Could not connect to gerrit at ssh://username@review.blissroms.com:29418/platform_frameworks_base.git
811Traceback (most recent call last):
812 File "/usr/bin/git-review", line 10, in &lt;module&gt;
813 sys.exit(main())
814 File "/usr/lib/python2.7/dist-packages/git_review/cmd.py", line 1534, in main
815 sys.exit(e.EXIT_CODE)
816AttributeError: 'GitReviewException' object has no attribute 'EXIT_CODE'
817</code></pre>
818<p>Why does this happen? This is because the <code>ssh-agent</code> process got killed after prolonged use of the system, so you need to restart it.</p>
819<p>As a quick and dirty fix, run this again:</p>
820<pre><code>eval “$(ssh-agent)”
821</code></pre>
822<p>This should fix it. If not, then you need to go back to Chapter 1 and add your existing key. Don’t make a new key, then you’d need to add a new public key to the Bliss Gerrit.</p>
823<p>Now let’s see if there are any changes we can review.</p>
824<pre><code>git review -l
825</code></pre>
826<p>This outputs:</p>
827<pre><code>2433 new-mm6.0 SystemUI: fix double tap power launching custom lockscreen icon
8282432 new-mm6.0 SystemUI: remove extraneous debug log
829Found 2 items for review
830</code></pre>
831<h4 id="my-output-is-blank-or-different-why">My output is blank (or different.) Why?</h4>
832<p>This is because right now, there are no changes to be reviewed in <code>frameworks/base</code> (or there are different commits to be reviewed.) This is completely normal and to be expected, as we merge and submit new commits frequently. The guide will probably be out of sync with current changes by the time you are reading this.</p>
833<p>Now you have a list of commits sorted by change number with a description of what changes were made.</p>
834<p>We have a few choices of how to pick commits.</p>
835<h4 id="cherry-picking-commits-to-current-branch">Cherry-picking commits to current branch</h4>
836<pre><code>git review -x changenumber
837</code></pre>
838<p>will cherry-pick that commit to the current branch you are in. A benefit of this is the next time you <code>repo sync –force-sync</code>, it will discard the commits you picked.</p>
839<h4 id="cherry-picking-commits-to-new-branch">Cherry-picking commits to new branch</h4>
840<pre><code>git review -d changenumber
841</code></pre>
842<p>will cherry-pick to a new branch based on the submitter’s name and change ID. If you choose this route the change will be in its own branch and when you are done you can just delete that branch.</p>
843<pre><code>Switched to a new branch review/yourusername/changenumber
844</code></pre>
845<p>Now you can review the change. Follow these guidelines:</p>
846<ul>
847<li>Did the ROM build with the change incorporated?</li>
848<li>Did the added feature or fix work in the new build?</li>
849<li>Did the new commit break any other aspects of the build?</li>
850</ul>
851<p>After reviewing these guidelines, log into Gerrit via your web browser, and click on the commit you reviewed. Select the ‘Reply’ button on the top and choose your score. +1 if it works as intended, -1 if not. Be sure to leave comments on why you gave your score (such as “commit A does not show in 320 DPI”, etc)</p>
852<p>Once you're done, return to the base directory (<code>croot</code>) to follow along with the next example!</p>
853<h3 id="submitting-code">Submitting code</h3>
854<p>Go to the directory of the package or app you want to make changes to. We will use <code>frameworks/base</code> as an example.</p>
855<pre><code>cd frameworks/base
856</code></pre>
857<p>Setup the remote to Gerrit if you haven’t already:</p>
858<pre><code>git review -s
859</code></pre>
860<p>Next, make sure you are on the correct branch:</p>
861<pre><code>git branch -t p9.0 BlissRoms/p9.0
862</code></pre>
863<p>This makes sure that your local branch follows the remote branch. <code>-t</code> stands for tracking. Now we need to <code>checkout</code>, to switch to that new branch we tracked. You usually do not need to do the above command, but it is a nice check to do if something is going south.</p>
864<pre><code>git checkout p9.0
865</code></pre>
866<p>This should output:</p>
867<pre><code>Changed to new branch p9.0 tracking upstream BlissRoms/p9.0
868</code></pre>
869<p>Now make your changes, cherry-picks, etc. and commit them. If you need a guide to do that, check out <a href="#picking-from-other-sources">Picking from other sources</a>. When you’re done, come back here! Then all you have to do to send it to gerrit is:</p>
870<pre><code>git review
871</code></pre>
872<p>If you are submitting multiple commits it will ask if you really want to, just type “yes” at the prompt.</p>
873<h3 id="picking-from-other-sources">Picking from other sources</h3>
874<p>So you’ve successfully learned how to commit and send it to Bliss Gerrit. But you need to find something to commit. Thankfully, there are lots of examples you can try out. You can check other teams’ Gerrits and cherry-pick from them.</p>
875<p>For this demonstration, I’m going to use LineageOS's Gerrit. Find the commit you want, and note down the commit ID.</p>
876<p>Now, we need to add LOS’s repositories. If you’re pulling over a commit, you must make sure that we track the repository by going to Bliss’s Gerrit and checking in Projects &gt; List. If the repository is not there, it usually means we aren’t tracking it.</p>
877<pre><code>git remote add los https://github.com/LineageOS/……(your repo name)
878git remote fetch los lineage-16.0
879</code></pre>
880<p>We’ve finished adding LOS’s repositories. Now you need to grab the commit ID you copied earlier and paste it on the command underneath.</p>
881<pre><code>git cherry-pick 9ff831
882</code></pre>
883<p>Replace 9ff831 with your own commit ID. If <code>git</code> complains about duplicate revisions, paste the full SHA1 hash instead of the shorthand <code>git</code> uses.</p>
884<p>Before pushing and submitting, we need to check if our commit was successfully committed. Type the bottom command:</p>
885<pre><code>git log --oneline
886</code></pre>
887<p>After you check that your commit is there, you can push <code>q</code> to quit. Then you can follow the instructions from <a href="#submitting-code">Submitting code</a> again.</p>
888<h3 id="conclusion">Conclusion</h3>
889<p>Don’t worry if you don’t get it at once. It’s a fairly long process of submitting and reviewing at Gerrit. Read the guide again and again and you’ll start to remember commands without looking at this. I will continue with this as I learn more things, I hope this has helped someone.</p>
890<p>-- Vaughn (rwaterspf1)</p>
891<p>-- Eric Park (ideaman924)</p>
892<p>-- Jon West (electrikjesus)</p>
893
Eric Parkc9931992019-07-29 13:10:53 +0900894
895
896
897
898
899
900 </article>
901 </div>
902 </div>
903 </main>
904
905
906<footer class="md-footer">
907
908 <div class="md-footer-nav">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900909 <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
Eric Parkc9931992019-07-29 13:10:53 +0900910
Eric Park8fd7bfb2020-10-02 19:05:33 +0900911 <a href="../" title="Index" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
912 <div class="md-footer-nav__button md-icon">
913 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
Eric Parkc9931992019-07-29 13:10:53 +0900914 </div>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900915 <div class="md-footer-nav__title">
916 <div class="md-ellipsis">
Eric Parkc9931992019-07-29 13:10:53 +0900917 <span class="md-footer-nav__direction">
918 Previous
919 </span>
920 Index
Eric Park8fd7bfb2020-10-02 19:05:33 +0900921 </div>
Eric Parkc9931992019-07-29 13:10:53 +0900922 </div>
923 </a>
924
925
Eric Park8fd7bfb2020-10-02 19:05:33 +0900926 <a href="../maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
927 <div class="md-footer-nav__title">
928 <div class="md-ellipsis">
Eric Parkc9931992019-07-29 13:10:53 +0900929 <span class="md-footer-nav__direction">
930 Next
931 </span>
Eric Park8584eda2019-09-02 09:45:55 +0800932 Maintaining proper authorship
Eric Park8fd7bfb2020-10-02 19:05:33 +0900933 </div>
Eric Parkc9931992019-07-29 13:10:53 +0900934 </div>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900935 <div class="md-footer-nav__button md-icon">
936 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
Eric Parkc9931992019-07-29 13:10:53 +0900937 </div>
938 </a>
939
940 </nav>
941 </div>
942
943 <div class="md-footer-meta md-typeset">
944 <div class="md-footer-meta__inner md-grid">
945 <div class="md-footer-copyright">
946
Eric Park8fd7bfb2020-10-02 19:05:33 +0900947 Made with
948 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
949 Material for MkDocs
950 </a>
Eric Parkc9931992019-07-29 13:10:53 +0900951 </div>
952
953 </div>
954 </div>
955</footer>
956
957 </div>
958
Eric Park8fd7bfb2020-10-02 19:05:33 +0900959 <script src="../../assets/javascripts/vendor.77e55a48.min.js"></script>
960 <script src="../../assets/javascripts/bundle.aa3f9871.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
Eric Parkc9931992019-07-29 13:10:53 +0900961
Eric Park8fd7bfb2020-10-02 19:05:33 +0900962 <script>
963 app = initialize({
964 base: "../..",
965 features: [],
966 search: Object.assign({
967 worker: "../../assets/javascripts/worker/search.4ac00218.min.js"
968 }, typeof search !== "undefined" && search)
969 })
970 </script>
Eric Parkc9931992019-07-29 13:10:53 +0900971
972
973 </body>
974</html>