Introduce fragments
[?]
Dec 8, 2019, 7:21 PM
UXLO2KVDT7D5HJSSRWQHWAY2M6K57HWBKL45TDIXYJODEK57AB5ACDependencies
- [2]
BZTIJPUBFinish the predictions - [3]
BRKBOTWHAfter-talk changes - [4]
4AZS4L6BAdd chapters - [5]
5LKTNB6OLOTS of progress - [6]
PMBAMPBIFinish the title slide - [7]
QEKU5M3OPreface - [8]
36IPNPISHandle a few TODOs - [9]
UYGSVBN7Start the fossil demo - [10]
LDVTVP2GAll TODOs are gone now - [11]
CBUCBYTVProgress - [12]
D7QXCWGAProgress - [13]
NYFLNSVVAdd some contents - [14]
WYULWETJReorganize - [15]
SQWPGFUEFinish the demos - [16]
KPHR32IRProgress - [17]
JSFDZRYKAdd the famous Bill Gates quote - [*]
UH3YXOLFStart the slide deck - [*]
S55XICBMFix speaker notes - [*]
ARAFRHKUCreate the outline of the talk
Change contents
- replacement in index.html at line 93
<li>"Beyond Git" (by Paweł Świątkowski)<li class="fragment fade-in-then-semi-out">"Beyond Git" (by Paweł Świątkowski) - replacement in index.html at line 96
<li>"Merging, patches and Pijul" (by Joe Neeman)<li class="fragment fade-in-then-semi-out">"Merging, patches and Pijul" (by Joe Neeman) - replacement in index.html at line 99
<li>"The Pijul Manual"<li class="fragment fade-in-then-semi-out">"The Pijul Manual" - edit in sections/0-welcome.md at line 27
* Niet te snel praten!! Er is tijd genoeg! - replacement in sections/1-preface.md at line 75[4.40015]→[4.40015:40103](∅→∅),[4.40103]→[4.4220357:4220450](∅→∅),[4.4220357]→[4.4220357:4220450](∅→∅)
And his question proved that he had noticed an **entirely** different thing than I had.Moreover, his 'discovery' - if you will - proved to be a **lot** more interesting than mine.And her question proved that she had noticed an **entirely** different thing than I had.Moreover, her 'discovery' - if you will - actually proved to be a **lot** more interesting than mine. - replacement in sections/1-preface.md at line 78
He came up to me and said: "Git is great and all that, but what's gonna be the **next** big thing?"She came to me after class and said: "Git is great and all that, but what's gonna be the **next** big thing?" - replacement in sections/1-preface.md at line 84
Now I turned to the student and told him everything I knew.Now I turned to the student and told her everything I knew. - replacement in sections/1-preface.md at line 86
But this wasn't a proper answer at all!But of course this wasn't a proper answer at all! - replacement in sections/1-preface.md at line 89
Now afterwards, I really felt bad about not being able to answer his question directly.I had effectively told the guy that "Git will probably be around forever", even if I didn't phrase it exactly like that.Now afterwards, I really felt bad about not being able to answer my student's question directly.I had effectively told her that "Git will probably be around forever", even if I didn't phrase it exactly like that. - replacement in sections/1-preface.md at line 94
Which is the one you're attending right now!Which is the one you're attending right now! - replacement in sections/1-preface.md at line 98
And after we find out, I'll make sure that he gets the answer as soon as possible.And after we find out, I'll make sure that she gets the answer as soon as possible. - replacement in sections/1-preface.md at line 116
If working in software development for almost 12 years has taught me anything, it's that...Boy, was he wrong!If working in software development for over 12 years has taught me anything, it's that... - replacement in sections/2-git.md at line 27
* Distributed* Free & open-source* Fast* Optimized for branching* Distributed <!-- .element: class="fragment fade-in-then-semi-out" -->* Free & open-source <!-- .element: class="fragment fade-in-then-semi-out" -->* Fast <!-- .element: class="fragment fade-in-then-semi-out" -->* Optimized for branching <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/2-git.md at line 41
* **Optimized for branching*** In the Subversion age, developers 'were afraid of branching', so they didn't do it!* **Optimized for branching*** Like Subversion, Git has 'easy branching'.* In the CVS age, developers 'were afraid of branching', so they didn't do it! - replacement in sections/3-the-browser-wars.md at line 23
Now notice the date, in the bottom left corner.It's in Dutch, but obviously that's not the worst thing.Firstly, notice the date, in the bottom left corner. - replacement in sections/3-the-browser-wars.md at line 30
Which were present on **every** slide.They were obviously a major waste of space.Also: the background gradient.The page number at the bottom.Which were repeated on **every** slide.Disastrous!Major waste of space.Also: the background gradient.What is up with that?Nobody uses that any more.The page numbers at the bottom. - replacement in sections/3-the-browser-wars.md at line 41
If you just wait for fifteen years, they will be popular again.If you would just wait another fifteen years, they will be popular again. - replacement in sections/3-the-browser-wars.md at line 120
Also, if more people know your product, then in theory they can come up with fresh new ideas that your product doesn't have.Also, if more people know your product, then in theory there are more people that can come up with fresh new ideas that your product doesn't have. - replacement in sections/4-four-new-kids-on-the-block.md at line 12
## Four new(er) kids on the block## Three new(er) kids on the block - edit in sections/4-four-new-kids-on-the-block.md at line 14
* Fossil (2006) - replacement in sections/4-four-new-kids-on-the-block.md at line 15
* Veracity (2011)* Fossil (2006) - replacement in sections/4-four-new-kids-on-the-block.md at line 19
These four Version Control Systems have been published after the large Distributed Version Control wave in March/April 2005.These three Version Control Systems have been published after the large Distributed Version Control wave in March/April 2005. - edit in sections/4-four-new-kids-on-the-block.md at line 25[4.51995]→[4.237:243](∅→∅),[4.2744861]→[4.237:243](∅→∅),[4.243]→[4.51996:52015](∅→∅),[4.52015]→[4.254:330](∅→∅),[4.254]→[4.254:330](∅→∅),[4.330]→[4.52016:52098](∅→∅),[4.52098]→[4.364:582](∅→∅),[4.364]→[4.364:582](∅→∅),[4.582]→[4.52099:52179](∅→∅)
---## Veracity (2011)* Distributed version control* Issue tracking and wiki, also distributed <!-- .element: class="no-background" --><http://www.veracity-scm.com> <!-- .element: class="attribution" -->---## But#### Veracity is not going to be 'the Git killer'* Development status: web site appears unmaintained; latest release March 25, 2013* Hosting platform www.onveracity.com hasn't been online since February 4, 2015 - edit in sections/4-four-new-kids-on-the-block.md at line 26[4.659]→[4.659:665](∅→∅),[4.665]→[4.52180:52518](∅→∅),[4.762]→[4.4234785:4234786](∅→∅),[4.52518]→[4.4234785:4234786](∅→∅),[4.2744861]→[4.4234785:4234786](∅→∅),[4.4234785]→[4.4234785:4234786](∅→∅)
note:Sorry if this is a bit of an anti-climax.But in the talk abstract I included Veracity as one of the contenders.And when I wrote the abstract I never thought about the fact that it could disappear from the Internet altogether.Because that's literally what happened.But no worries, I've found a replacement contender!Which is Plastic. - replacement in sections/4-four-new-kids-on-the-block.md at line 30
* Fast branching* Merge previews* Both central and distributed* Comes with **a lot** of GUI stuff* Fast branching <!-- .element: class="fragment fade-in-then-semi-out" -->* Merge previews <!-- .element: class="fragment fade-in-then-semi-out" -->* Both central and distributed <!-- .element: class="fragment fade-in-then-semi-out" -->* Comes with a lot of GUI stuff <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/4-four-new-kids-on-the-block.md at line 47
* 'Plastic Gluon' is a version control component meant for artists and designers* Image diffing* References on their website are exclusively from game studios* 'Plastic Gluon' is a version control component meant for artists and designers <!-- .element: class="fragment fade-in-then-semi-out" -->* Image diffing <!-- .element: class="fragment fade-in-then-semi-out" -->* References on their website are exclusively from game studios <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/4-four-new-kids-on-the-block.md at line 62
* it's not open-source software* Git users are not changing their VCS just for some *eye candy** it's not open-source software <!-- .element: class="fragment fade-in-then-semi-out" -->* Git users are not changing their VCS just for some eye candy <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/5-fossil.md at line 17[4.4235404]→[4.797:937](∅→∅),[4.937]→[4.52893:52930](∅→∅),[4.52930]→[4.973:1035](∅→∅),[4.973]→[4.973:1035](∅→∅)
* **distributed** version control* **integrated bug tracking**, wiki, forum and technotes* built-in **web interface*** **autosync** mode* show **descendants** of a check-in* supports operations on multiple repositories (`fossil all`)<ul><li class="fragment fade-in-then-semi-out">distributed version control</li><li class="fragment fade-in-then-semi-out">integrated bug tracking, wiki, forum and technotes</li><li class="fragment fade-in-then-semi-out">built-in web interface</li><li class="fragment fade-in-then-semi-out">autosync mode</li><li class="fragment fade-in-then-semi-out">show descendants of a check-in</li><li class="fragment fade-in-then-semi-out">supports operations on multiple repositories (<code>fossil all</code>)</li></ul> - replacement in sections/5-fossil.md at line 26
<https://www.fossil-scm.org> <!-- element: class="attribution" --><a href="https://www.fossil-scm.org" class="attribution">https://www.fossil-scm.org</a> - replacement in sections/5-fossil.md at line 35
* Written in C and SQL* Is the VCS of choice for the SQLite project* 'Github in a box'* Free code hosting at:* Written in C and SQL <!-- .element: class="fragment fade-in-then-semi-out" -->* Is the VCS of choice for the SQLite project <!-- .element: class="fragment fade-in-then-semi-out" -->* 'Github in a box' <!-- .element: class="fragment fade-in-then-semi-out" -->* Free code hosting at: <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/5-fossil.md at line 51
* a repository is stored in a single SQLite database file* contains relations between check-ins to be able to produce both ancestors and descendants of a check-in* a repository is stored in a single SQLite database file <!-- .element: class="fragment fade-in-then-semi-out" -->* contains relations between check-ins to be able to produce both ancestors and descendants of a check-in <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/5-fossil.md at line 65
* repository UI (`fossil ui`)* wiki, ticketing & bug tracking* embedded documentation* technical notes* forum<ul><li class="fragment fade-in-then-semi-out">repository UI (<code>fossil ui</code>)</li><li class="fragment fade-in-then-semi-out">wiki, ticketing & bug tracking</li><li class="fragment fade-in-then-semi-out">embedded documentation</li><li class="fragment fade-in-then-semi-out">technical notes</li><li class="fragment fade-in-then-semi-out">forum</li></ul> - edit in sections/5-fossil.md at line 89
* Resolving conflicts - replacement in sections/6-pijul.md at line 25
* **distributed** version control* **simple**, because of its basis on a *sound theory of patches** **fast**, because it aims to fix the Darcs performance issues* **interactive** recording* distributed version control <!-- .element: class="fragment fade-in-then-semi-out" -->* simple, because of its basis on a sound theory of patches <!-- .element: class="fragment fade-in-then-semi-out" -->* fast, because it aims to fix the Darcs performance issues <!-- .element: class="fragment fade-in-then-semi-out" -->* interactive recording <!-- .element: class="fragment fade-in-then-semi-out" --> - replacement in sections/6-pijul.md at line 40
* written in Rust* *bootstrapped* since April 2017* free code hosting at <https://nest.pijul.com><ul><li class="fragment fade-in-then-semi-out">written in Rust<li class="fragment fade-in-then-semi-out">bootstrapped since April 2017<li class="fragment fade-in-then-semi-out">free code hosting at<a href="https://nest.pijul.com">https://nest.pijul.com</a></ul> - replacement in sections/6-pijul.md at line 57
* A patch is an intuitive atomic unit of work.* It focuses on *changes*, instead of *differences between snapshots* (i.e. Git commits).* Applying or unapplying a patch *doesn't change* its identity.* The end result of applying several patches is always the same, regardless of the order in which they were applied.* Pijul keeps track of 'dependent patches'* No merges or rebases; applying a patch is like `git cherry-pick`.<ul><li class="fragment fade-in-then-semi-out">A patch is an intuitive atomic unit of work.</li><li class="fragment fade-in-then-semi-out">It focuses on <em>changes</em>, instead of <em>differences between snapshots</em> (i.e. Git commits).</li><li class="fragment fade-in-then-semi-out">Applying or unapplying a patch <em>doesn't change</em> its identity.</li><li class="fragment fade-in-then-semi-out">The end result of applying several patches is always the same, regardless of the order in which they were applied.</li><li class="fragment fade-in-then-semi-out">Pijul keeps track of 'dependent patches'</li><li class="fragment fade-in-then-semi-out">No merges or rebases; applying a patch is like <code>git cherry-pick</code>.</li></ul> - replacement in sections/6-pijul.md at line 82
pijul init demotouch Sample.javapijul statuspijul add Sample.javamkdir directorypijul add directorypijul statuspijul record`pijul init demo``touch Sample.java``pijul status``pijul add Sample.java``mkdir directory``pijul add directory``pijul status``pijul record ` - replacement in sections/6-pijul.md at line 91
(Here y means yes, n means no, k means undo and remake last decision, a means include this and all remaining patches, d means include neither this patch nor the remaining patches and i means ignore this file locally (i.e. it is added to .pijul/local/ignore).)(Here `y` means yes, `n` means no, `k` means undo and remake last decision, `a` means include this and all remaining patches, `d` means include neither this patch nor the remaining patches and `i` means ignore this file locally (i.e. it is added to .pijul/local/ignore).) - replacement in sections/7-predictions.md at line 19[4.1937]→[4.4236982:4237029](∅→∅),[4.4237029]→[4.331324:331357](∅→∅),[4.331357]→[4.4237029:4237073](∅→∅),[4.4237029]→[4.4237029:4237073](∅→∅)
* Killer features.* Hosting platform support.* Open-source community support.* The disadvantage of the dominant product.* Killer features. <!-- .element: class="fragment fade-in-then-semi-out" -->* Hosting platform support. <!-- .element: class="fragment fade-in-then-semi-out" -->* Open-source community support. <!-- .element: class="fragment fade-in-then-semi-out" -->* The disadvantage of the dominant product. <!-- .element: class="fragment fade-in-then-semi-out" -->