-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
569 lines (410 loc) · 32.1 KB
/
index.html
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
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
<!DOCTYPE html>
<html>
<head>
<title>My Awesome Presentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
/*
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
*/
body { font-family: Helvetica, Arial; }
.remark-slide-content { font-size: 30px; }
.big { margin-top: -.4em; font-size: 200%; }
.small { font-size: 70%; }
table.timeline {
border-collapse: collapse;
width: 100%;
height: 1em;
}
table.timeline tr:first-child > td {
border-bottom: 1px solid black;
}
table.timeline td {
position: relative;
border-left: 1px solid black;
border-right: 1px solid black;
}
table.timeline td:last-child {
border-right: 1px solid transparent;
}
div.timeline {
position: relative;
font-size: 20px;
}
table.timeline:after {
content: '';
position: absolute;
right: -1em;
top: .5px;
bottom: 0;
border: .5em solid;
border-color: transparent transparent transparent black;
}
table.timeline .label {
position: absolute;
width: 100%;
top: 1ex;
left: -50%;
text-align: center;
}
table.timeline .icon {
position: absolute;
width: 100%;
text-align: center;
}
.icon { visibility: hidden; }
.dark .icon.dark,
.diff .icon.diff,
.rcs .icon.rcs,
.cvs .icon.cvs,
.net .icon.net,
.cvs15 .icon.cvs15,
.sf .icon.sf,
.svn .icon.svn,
.rewind .icon.rewind,
.unix .icon.unix,
.gnu .icon.gnu,
.linux .icon.linux,
.bk .icon.bk,
.git .icon.git,
.junio .icon.junio,
.github .icon.github,
.bday .icon.bday { visibility: visible; }
table.timeline .u1 { top: -400%; }
table.timeline .u2 { top: -1300%; }
table.timeline .d1 { top: 600%; }
table.timeline .d2 { top: 1300%; }
table.timeline .x1 { left: -40%; }
table.timeline .x2 { left: -30%; }
table.timeline .x3 { left: -20%; }
table.timeline .x4 { left: -10%; }
table.timeline .x6 { left: 10%; }
table.timeline .x7 { left: 20%; }
table.timeline .x9 { left: 40%; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# git storytime
---
# You've seen git
.center[]
---
# But what is git?
- Where did git come from?
- What is the meaning of git?
- Are we git in the universe?
- Is there a higher git?
- How do I become one with git?
.center[]
---
# But what is git?
- Where did git come from?

---
# Dark Ages

---
# Dark Ages

---
# Dark Ages

???
pic from Windows. floppy disks. picture of the Internet. file shares. new document 1
- Dark Ages
- copy a file, all manual
- not a lot of collaboration. single person or very small teams
---
class: middle
<div class="timeline dark">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
---
# diff
.center[]
???
- 1974
- Hunt–McIlroy algorithm for longest common subsequence
- space-efficient storage of revisions
---
class: middle
<div class="timeline dark diff">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
---
class: middle
<div class="timeline dark diff rcs">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- first generation of version control
- 1982: RCS
- more collaboration, more formal way to store revisions
- manage versions of a file by storing series of diffs
- limited to a single file
---
class: middle
<div class="timeline dark diff rcs cvs">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- 1986: CVS
- script on top of RCS to manage revisions of multiple files in a single _changeset_; operation called a _commit_
- introduced notion of a changeset
- https://groups.google.com/forum/message/raw?msg=mod.sources/eqze_AHbIK0/uE90wCq3ui4J
---
class: middle
<div class="timeline dark diff rcs cvs net">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- early 90s greatest invention?
---

---
class: middle
<div class="timeline dark diff rcs cvs cvs15">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- newfangled personal computer
- didn't have to download all the source code to your 500MB hard drive
- .1995. CVS 1.5
- adds client/server
- clients only store the current check out. 500MB of hard drive
- http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/NEWS?view=markup&revision=1.2
- Remote implementation. This is very helpful when collaborating on a project with someone across a wide-area network. This release can also be used locally, like other CVS versions, if you have no need for remote access.
- reasonably good for development by centralized teams
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- .1999. SourceForge
- one of the first "forge" development hub
- free for open source projects
- open source existed on the fringes, first open source revival
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- .2004. Subversion v1
- CVS "done right"
---
class: middle
<div class="timeline cvs cvs15 sf svn">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn rewind">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- 1970s. Unix
- OS created by Bell Labs
- commercially successful
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix gnu">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- .1983. GNU
- free OS
- no kernel
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix gnu linux">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- .1991. Linux released
- Linus Torvalds, university student didn't like existing OS licensing
- invited community
---
# It's a hit!
.center[]
---
# It's a hit!
<div style="position: relative">
<div style="position: absolute; font-size: 15em; width: 100%; text-align: center">😅</div>
.center[]
</div>
???
# Linus wasn't scaling
- Applying everyone's changes took hours
- Kernel release took a full year
- Patches being accidentally dropped
- Community concerned Linus would burnout
- Linus
- bottleneck for any change to go into the kernel
- needs to do a LOT of merges
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix gnu linux bk">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- BitKeeper gets free advertising from Linux
- Linux gets to use BitKeeper for free, even though it's not open source
- each developer workstation has its own full copy of the repository
- FAST, especially merges
- ~similar time first DVCS
- changeset-based
- no file locking
- non-linear history
- most operations are local
- full repository locally
- optimized for merges
- paradigm shifts
---
# L-pocalypse
- BitKeeper revokes its license from Linux
- BitKeeper is closed source
- Dev tried to reverse engineer its protocol
- Linux development stops indefinitely
.center[]
.small[[LWN: The kernel and BitKeeper part ways](https://lwn.net/Articles/130746/)]
???
- 2005 April. BitKeeper falling out
- like L train shutdown
- BitKeeper was commercial and closed source, but offered a free license. Reverse engineering lost favor with vendor
- https://lwn.net/Articles/130746/
---
# jk!
<iframe src="http://lkml.iu.edu/hypermail/linux/kernel/0504.0/2022.html" style="border: 0; width: 100%"></iframe>
.center[]
???
- cuomo "psych!"
- https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290
- http://lkml.iu.edu/hypermail/linux/kernel/0504.0/2022.html
- why named git?
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix gnu linux bk junio">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- Git 1.5
- first usable release
- Junio Hamano
- https://lwn.net/Articles/222086/
---
class: middle
<div class="timeline dark diff rcs cvs cvs15 sf svn unix gnu linux bk junio github">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
???
- .2009. GitHub
- free forge for open source software
- culture shift toward mainstream open source
---
# TODO write an ending
---
class: middle
<div class="timeline dark diff rewind rcs cvs net cvs15 sf svn unix gnu linux bk git junio github bday">
<table class="timeline"> <tr> <td> <div class="icon x7 u2 dark"><img src="winter.jpg" style="width: 6em"></div> <div class="icon x4 u1 diff">diff</div> <div class="icon x2 d1 rewind big">➡️</div> <div class="icon x5 d1 unix">Unix</div> </td> <td> <div class="icon x2 u1 rcs">RCS</div> <div class="icon x6 u1 cvs">CVS</div> <div class="icon x3 d1 gnu"><img src="gnu.png" style="width: 4em"></div> </td> <td> <div class="icon x9 u2 sf"><img src="sf.jpg" style="width: 7em"></div> <div class="icon x4 u1 net big">❓</div> <div class="icon x5 u1 cvs15"><img src="net.png" style="width: 2em"></div> <div class="icon x1 d1 linux"><img src="tux.png" style="width: 4em"></div> </td> <td> <div class="icon x1 u1 svn"><img src="svn.png" style="width: 4em"></div> <div class="icon x1 d1 bk"><img src="bk.png" style="width: 3em"></div> <div class="icon x5 d2 git"><img src="git.png" style="width: 4em"></div> <div class="icon x7 d1 junio"><img src="junio.jpg" style="width: 3em"></div> <div class="icon x9 u1 github"><img src="github.png" style="width: 4em"></div> </td> <td> <div class="icon x5 u1 bday"></div> </td> </tr>
<tr><td><div class="label">1970</div></td><td><div class="label">1980</div></td><td><div class="label">1990</div></td><td><div class="label">2000</div></td><td><div class="label">2010</div></td></tr>
</table>
</div>
---
# TODO
---
- VCS intro
- pixelapse analogy of version control?
- or later stage VCS: communication, collaboration. eng hub, build and deployment
- understand changes over time
- facilitate communication and sharing
- hub of software development ecosystem
- plumbing & porcelain
- everything else that has been built on top of git
- reflect on open source
- evolution
- perfect is the enemy of good
- inconsistencies galore
- porcelains abandoned
- nothing is precious
- unusual perspective on git
- share a passion. what are you passionate about?
- know your tools
- learn from its experience
- dialog of innovation
- design tradeoffs
- complex systems evolve from simple solution increments
- successful despite terrible ux
---
class: center, middle
# My Awesome Presentation
???
Notes for the _first_ slide!
---
# Agenda
1. Introduction
2. Deep-dive
3. ...
[NOTE]: Note that you need active internet connection to access remark.js script file
---
# Introduction
</textarea>
<script src="https://remarkjs.com/downloads/remark-latest.min.js" type="text/javascript">
</script>
<script type="text/javascript">
remark.macros.width = function (percentage) {
var url = this;
return '<img src="' + url + '" style="width: ' + percentage + '" />';
};
var slideshow = remark.create();
</script>
</body>
</html>