blob: 3781cc7574eb11c10368e2ef824a5eee6187d09b [file] [log] [blame]
Eric Park8584eda2019-09-02 09:45:55 +08001
Eric Park8584eda2019-09-02 09:45:55 +08002<!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 Park8584eda2019-09-02 09:45:55 +08008
9
10
Eric Park8584eda2019-09-02 09:45:55 +080011 <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 Park8584eda2019-09-02 09:45:55 +080013
14
15
16 <title>Maintaining proper authorship - 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 Park8584eda2019-09-02 09:45:55 +080021
Eric Park8fd7bfb2020-10-02 19:05:33 +090022
23 <link rel="stylesheet" href="../../assets/stylesheets/palette.3f72e892.min.css">
24
Eric Park8584eda2019-09-02 09:45:55 +080025
26
27
Eric Park8584eda2019-09-02 09:45:55 +080028
29
Eric Park8fd7bfb2020-10-02 19:05:33 +090030
Eric Park8584eda2019-09-02 09:45:55 +080031 <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 Park8584eda2019-09-02 09:45:55 +080034
35
Eric Park8584eda2019-09-02 09:45:55 +080036
37
38
39
40
41
42 </head>
43
Eric Park8584eda2019-09-02 09:45:55 +080044
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 Park8584eda2019-09-02 09:45:55 +080053 <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="#what-is-kanging" class="md-skip">
60 Skip to content
61 </a>
62
63 </div>
64 <div data-md-component="announce">
65
66 </div>
Eric Park8584eda2019-09-02 09:45:55 +080067
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 Maintaining proper authorship
88
89 </span>
Eric Park8584eda2019-09-02 09:45:55 +080090 </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 Park8584eda2019-09-02 09:45:55 +080098<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 Park8584eda2019-09-02 09:45:55 +0800109 </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 Park8584eda2019-09-02 09:45:55 +0800114 <div class="md-search-result__meta">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900115 Initializing search
Eric Park8584eda2019-09-02 09:45:55 +0800116 </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 Park8584eda2019-09-02 09:45:55 +0800125 </nav>
126</header>
127
Eric Park8fd7bfb2020-10-02 19:05:33 +0900128 <div class="md-container" data-md-component="container">
129
Eric Park8584eda2019-09-02 09:45:55 +0800130
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 Park8584eda2019-09-02 09:45:55 +0800135
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 Park8584eda2019-09-02 09:45:55 +0800143
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 Park8584eda2019-09-02 09:45:55 +0800147 </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">
159 <a href="../.." title="Home" class="md-nav__link">
160 Home
161 </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 Park8584eda2019-09-02 09:45:55 +0800173
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 Park8584eda2019-09-02 09:45:55 +0800177 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900178 <nav class="md-nav" aria-label="Bliss OS" data-md-level="1">
Eric Park8584eda2019-09-02 09:45:55 +0800179 <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 Park8584eda2019-09-02 09:45:55 +0800181 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 Park8584eda2019-09-02 09:45:55 +0800193 Index
194 </a>
195 </li>
196
197
198
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 Park8584eda2019-09-02 09:45:55 +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 Park8584eda2019-09-02 09:45:55 +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 Park8584eda2019-09-02 09:45:55 +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 Park8584eda2019-09-02 09:45:55 +0800277 Troubleshooting
278 </a>
279 </li>
280
281
282 </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 Park8584eda2019-09-02 09:45:55 +0800295
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 Park8584eda2019-09-02 09:45:55 +0800299 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900300 <nav class="md-nav" aria-label="BlissRoms" data-md-level="1">
Eric Park8584eda2019-09-02 09:45:55 +0800301 <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 Park8584eda2019-09-02 09:45:55 +0800303 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">
326 <a href="../../BlissRoms/build-guide/" title="Build Guide" class="md-nav__link">
327 Build Guide
328 </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 Park8584eda2019-09-02 09:45:55 +0800359
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 Park8584eda2019-09-02 09:45:55 +0800363 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900364 <nav class="md-nav" aria-label="Common" data-md-level="1">
Eric Park8584eda2019-09-02 09:45:55 +0800365 <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 Park8584eda2019-09-02 09:45:55 +0800367 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 <li class="md-nav__item">
390 <a href="../git-started/" title="Git Started" class="md-nav__link">
391 Git Started
392 </a>
393 </li>
394
395
396
397
398
399
400
401
402
403 <li class="md-nav__item md-nav__item--active">
404
Eric Park8fd7bfb2020-10-02 19:05:33 +0900405 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
Eric Park8584eda2019-09-02 09:45:55 +0800406
407
408 <label class="md-nav__link md-nav__link--active" for="__toc">
409 Maintaining proper authorship
Eric Park8fd7bfb2020-10-02 19:05:33 +0900410 <span class="md-nav__icon md-icon"></span>
Eric Park8584eda2019-09-02 09:45:55 +0800411 </label>
412
413 <a href="./" title="Maintaining proper authorship" class="md-nav__link md-nav__link--active">
414 Maintaining proper authorship
415 </a>
416
417
Eric Park8fd7bfb2020-10-02 19:05:33 +0900418<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
Eric Park8584eda2019-09-02 09:45:55 +0800419
420
421
Eric Park8fd7bfb2020-10-02 19:05:33 +0900422 <label class="md-nav__title" for="__toc">
423 <span class="md-nav__icon md-icon"></span>
424 Table of contents
425 </label>
Eric Park8584eda2019-09-02 09:45:55 +0800426 <ul class="md-nav__list" data-md-scrollfix>
427
428 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800429 <a href="#what-is-kanging" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800430 What is kanging?
431 </a>
432
433</li>
434
435 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800436 <a href="#why-is-kanging-bad" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800437 Why is kanging bad?
438 </a>
439
440</li>
441
442 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800443 <a href="#kanging-examples-what-you-should-not-do" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800444 Kanging examples (what you should NOT) do
445 </a>
446
447</li>
448
449 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800450 <a href="#how-to-maintain-proper-authorship" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800451 How to maintain proper authorship
452 </a>
453
454</li>
455
456 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800457 <a href="#manually-specifying-an-author" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800458 Manually specifying an author
459 </a>
460
461</li>
462
Eric Park8584eda2019-09-02 09:45:55 +0800463 </ul>
464
465</nav>
466
467 </li>
468
469
470
471
472
473
474
475 <li class="md-nav__item">
476 <a href="../using-dippy-bird/" title="Using `dippy-bird`" class="md-nav__link">
477 Using `dippy-bird`
478 </a>
479 </li>
480
481
482 </ul>
483 </nav>
484 </li>
485
486
487
488
489
490
491
492 <li class="md-nav__item md-nav__item--nested">
493
Eric Park8fd7bfb2020-10-02 19:05:33 +0900494 <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
Eric Park8584eda2019-09-02 09:45:55 +0800495
496 <label class="md-nav__link" for="nav-5">
497 Infrastructure
Eric Park8fd7bfb2020-10-02 19:05:33 +0900498 <span class="md-nav__icon md-icon"></span>
Eric Park8584eda2019-09-02 09:45:55 +0800499 </label>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900500 <nav class="md-nav" aria-label="Infrastructure" data-md-level="1">
Eric Park8584eda2019-09-02 09:45:55 +0800501 <label class="md-nav__title" for="nav-5">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900502 <span class="md-nav__icon md-icon"></span>
Eric Park8584eda2019-09-02 09:45:55 +0800503 Infrastructure
504 </label>
505 <ul class="md-nav__list" data-md-scrollfix>
506
507
508
509
510
511
512
513 <li class="md-nav__item">
514 <a href="../../infrastructure/" title="Index" class="md-nav__link">
515 Index
516 </a>
517 </li>
518
519
520 </ul>
521 </nav>
522 </li>
523
524
525 </ul>
526</nav>
527 </div>
528 </div>
529 </div>
530
531
532 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
533 <div class="md-sidebar__scrollwrap">
534 <div class="md-sidebar__inner">
535
Eric Park8fd7bfb2020-10-02 19:05:33 +0900536<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
Eric Park8584eda2019-09-02 09:45:55 +0800537
538
539
Eric Park8fd7bfb2020-10-02 19:05:33 +0900540 <label class="md-nav__title" for="__toc">
541 <span class="md-nav__icon md-icon"></span>
542 Table of contents
543 </label>
Eric Park8584eda2019-09-02 09:45:55 +0800544 <ul class="md-nav__list" data-md-scrollfix>
545
546 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800547 <a href="#what-is-kanging" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800548 What is kanging?
549 </a>
550
551</li>
552
553 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800554 <a href="#why-is-kanging-bad" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800555 Why is kanging bad?
556 </a>
557
558</li>
559
560 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800561 <a href="#kanging-examples-what-you-should-not-do" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800562 Kanging examples (what you should NOT) do
563 </a>
564
565</li>
566
567 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800568 <a href="#how-to-maintain-proper-authorship" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800569 How to maintain proper authorship
570 </a>
571
572</li>
573
574 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800575 <a href="#manually-specifying-an-author" class="md-nav__link">
Eric Park8584eda2019-09-02 09:45:55 +0800576 Manually specifying an author
577 </a>
578
579</li>
580
Eric Park8584eda2019-09-02 09:45:55 +0800581 </ul>
582
583</nav>
584 </div>
585 </div>
586 </div>
587
588
589 <div class="md-content">
590 <article class="md-content__inner md-typeset">
591
592
593
594 <h1>Maintaining proper authorship</h1>
595
596 <p>One of the most important things you need to keep in mind while working on open-source projects is maintaing correct authorship. In this article, we'll show you why maintaining proper authorship is important, give you a couple examples on correct and incorrect commits, and show you the overall procedure of correctly pulling in commits from others.</p>
597<h2 id="what-is-kanging">What is kanging?</h2>
598<p><a href="https://www.urbandictionary.com/define.php?term=kanged">Kanging</a> is a term used in the Android development community for the action of passing off someone else's code as one's own, intentionally or unintentionally. </p>
599<h2 id="why-is-kanging-bad">Why is kanging bad?</h2>
600<p>Kanging is bad because the developers who worked hard on the commits do not get the recognition they deserve. Over time, this may cause the developer to quit releasing public source code or even retire from the Android development community.</p>
601<h2 id="kanging-examples-what-you-should-not-do">Kanging examples (what you should NOT) do</h2>
602<p><strong>Example 1:</strong> You're trying to cherry-pick some commits from a different repository, but keep running into <code>git merge</code> issues. Out of frustration, you copy the code from the commit, and then just commit it using <code>git commit -a</code>. Satisfied, you push it up to GitHub.</p>
603<p><strong>Example 2:</strong> You bring up a bunch of commits, and squash them before pushing to GitHub.</p>
604<p><strong>Example 3:</strong> You intentionally want to pass off another developer's work as your own. You cherry-pick the commit, and then amend the commit to rewrite the author information.</p>
605<p>Let's go over why this is wrong. Example 1 is an example of an unintentional kang. You didn't want to resolve the <code>git merge</code> issues, so decided to just copy the code and commit it as your own. This is bad because the author information does not get transferred over with your copy, which you have to specify manually.</p>
606<p>Example 2 is more of an accident. If you squash multiple commits, all authorship information for the range of commits is lost. In addition, it becomes a real headache for other developers if something in the range of your commits is wrong. Because you cannot individually revert commits in a squash, squashing is very much discouraged and should ONLY be used when you have a lot of commits that you committed yourself and are small in nature.</p>
607<p>Example 3 is an example of an intentional kang. We won't explain why because it should be fairly obvious.</p>
608<h2 id="how-to-maintain-proper-authorship">How to maintain proper authorship</h2>
609<p>The process is fairly simple yet important to understand.</p>
610<p>If you are cherry-picking commits, the authorship information is transferred automatically. Provided that you are running <code>git cherry-pick &lt;commit-id&gt;</code>, the entire commit information, down to when the commit was created, is picked into your repository. You don't have to do anything in this case.</p>
611<p>If you are committing someone else's code yourself, then you must manually specify who the author is. There are a lot of reasons why you would do this, from merge issues to incompatible code with the existing codebase. To manually specify an author, <a href="#manually-specifying-an-author">follow the steps below.</a></p>
612<p>Finally, do NOT squash a range of commits that are not your own. This completely wipes authorship information from the range of commits and causes a massive headache for other developers.</p>
613<h2 id="manually-specifying-an-author">Manually specifying an author</h2>
614<p>You need to first determine the original author's name and email address.</p>
615<p>GitHub no longer shows the author information when you mouse over the profile picture, which is quite unfortunate. However, there is an easy workaround.</p>
616<p>Go to the commit that you want to pick. <a href="https://github.com/BlissRoms/Documentation-release/commit/5ae1c6c4441786cd3ad5bd1773c831ba13cd86bc">We'll use my commit as an example.</a></p>
617<p><img alt="commit-page" src="https://i.imgur.com/vKwDGJ5.png" /></p>
618<p>Add the word <code>.patch</code>, with the period, to the end of the URL and press Enter to navigate to the raw patch.</p>
619<p><img alt="patch-url" src="https://i.imgur.com/jWB8BSD.png" /></p>
620<p>In the patch, find the section that contains the author. It should be at the top of the page.</p>
621<p><img alt="author-information" src="https://i.imgur.com/mUCDtGI.png" /></p>
622<p>Now, it's time to commit with the correct author information. Make the necessary changes, and then commit using this command:</p>
623<pre><code>git commit --author="AUTHOR_INFORMATION_HERE"
624</code></pre>
625<p>Following the example, I would write:</p>
626<pre><code>git commit --author="Eric Park &lt;ideamaneric@gmail.com&gt;"
627</code></pre>
628<p>Once done, push to GitHub or Gerrit.</p>
629
Eric Park8584eda2019-09-02 09:45:55 +0800630
631
632
633
634
635
636 </article>
637 </div>
638 </div>
639 </main>
640
641
642<footer class="md-footer">
643
644 <div class="md-footer-nav">
Eric Park8fd7bfb2020-10-02 19:05:33 +0900645 <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
Eric Park8584eda2019-09-02 09:45:55 +0800646
Eric Park8fd7bfb2020-10-02 19:05:33 +0900647 <a href="../git-started/" title="Git Started" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
648 <div class="md-footer-nav__button md-icon">
649 <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 Park8584eda2019-09-02 09:45:55 +0800650 </div>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900651 <div class="md-footer-nav__title">
652 <div class="md-ellipsis">
Eric Park8584eda2019-09-02 09:45:55 +0800653 <span class="md-footer-nav__direction">
654 Previous
655 </span>
656 Git Started
Eric Park8fd7bfb2020-10-02 19:05:33 +0900657 </div>
Eric Park8584eda2019-09-02 09:45:55 +0800658 </div>
659 </a>
660
661
Eric Park8fd7bfb2020-10-02 19:05:33 +0900662 <a href="../using-dippy-bird/" title="Using `dippy-bird`" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
663 <div class="md-footer-nav__title">
664 <div class="md-ellipsis">
Eric Park8584eda2019-09-02 09:45:55 +0800665 <span class="md-footer-nav__direction">
666 Next
667 </span>
668 Using `dippy-bird`
Eric Park8fd7bfb2020-10-02 19:05:33 +0900669 </div>
Eric Park8584eda2019-09-02 09:45:55 +0800670 </div>
Eric Park8fd7bfb2020-10-02 19:05:33 +0900671 <div class="md-footer-nav__button md-icon">
672 <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 Park8584eda2019-09-02 09:45:55 +0800673 </div>
674 </a>
675
676 </nav>
677 </div>
678
679 <div class="md-footer-meta md-typeset">
680 <div class="md-footer-meta__inner md-grid">
681 <div class="md-footer-copyright">
682
Eric Park8fd7bfb2020-10-02 19:05:33 +0900683 Made with
684 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
685 Material for MkDocs
686 </a>
Eric Park8584eda2019-09-02 09:45:55 +0800687 </div>
688
689 </div>
690 </div>
691</footer>
692
693 </div>
694
Eric Park8fd7bfb2020-10-02 19:05:33 +0900695 <script src="../../assets/javascripts/vendor.77e55a48.min.js"></script>
696 <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 Park8584eda2019-09-02 09:45:55 +0800697
Eric Park8fd7bfb2020-10-02 19:05:33 +0900698 <script>
699 app = initialize({
700 base: "../..",
701 features: [],
702 search: Object.assign({
703 worker: "../../assets/javascripts/worker/search.4ac00218.min.js"
704 }, typeof search !== "undefined" && search)
705 })
706 </script>
Eric Park8584eda2019-09-02 09:45:55 +0800707
708
709 </body>
710</html>