Update for Pijul v1.0-beta
[?]
Jun 19, 2022, 10:13 AM
B7LX4UQGKIMNDG6GIRQ2NXYBGRCFJ3KRYMRPS3S6GK2BY5V2HK4ACDependencies
- [2]
KPOZ5SU6Final demo tips - [3]
F3AD6JXXAdd a Pijul demo that show reordering patches behaviour - [4]
IYB7IPPJAdjust timings - [5]
W3AVITLUFirst changes for Future Tech - [6]
ISYGO74YShorten the talk a bit - [7]
6RNQOQTHAdd slides URL - [8]
W7EIQGVRProgress - [9]
5LKTNB6OLOTS of progress - [10]
CBUCBYTVProgress - [11]
7RVMAQLPFinal major additions to the slide deck - [12]
4AZS4L6BAdd chapters - [13]
NYFLNSVVAdd some contents - [14]
UYGSVBN7Start the fossil demo - [15]
GHBCQL5FSpeaker notes improvements - [16]
TUF73VRYUpdate years - [17]
KPHR32IRProgress - [18]
DETDFBZFDockerfile voor pijul - [19]
YZWWU6JGSpeaker notes improvements - [20]
I3EH5ASIImprove speaker notes - [21]
SQWPGFUEFinish the demos - [22]
5JGZ5VE7Add unrecord to Pijul demo - [23]
QUG3TDX3Update to reveal.js 4.1 and a few small fixes - [24]
D7QXCWGAProgress - [25]
73PQOETUUpdate slides to 2021 situation - [*]
UH3YXOLFStart the slide deck - [*]
ARAFRHKUCreate the outline of the talk
Change contents
- replacement in docker/Dockerfile at line 9
RUN mkdir /development# install vimRUN apt-get install -y vim - replacement in docker/Dockerfile at line 12
# TODO:# * [ ] test drive the pijul demo in the `development` directory[6.259]RUN mkdir /development - replacement in index.html at line 111
<strong>Time Elapsed: 54 min.</strong><strong>Time Elapsed: 45 min.</strong> - replacement in sections/2-git.md at line 190
<td align="right">43%</td><td align="right">44%</td> - replacement in sections/2-git.md at line 194
<td align="right">19%</td><td align="right">25%</td> - replacement in sections/2-git.md at line 198
<td align="right">16%</td><td align="right">19%</td> - replacement in sections/2-git.md at line 202
<td align="right">6%</td><td align="right">7%</td> - replacement in sections/2-git.md at line 232
<td align="right">43%</td><td align="right">44%</td> - replacement in sections/2-git.md at line 237
<td align="right">19%</td><td align="right">25%</td> - replacement in sections/2-git.md at line 242
<td align="right">16%</td><td align="right">19%</td> - replacement in sections/2-git.md at line 247
<td align="right">6%</td><td align="right">7%</td> - replacement in sections/2-git.md at line 280
<td align="right">43%</td><td align="right">44%</td> - replacement in sections/2-git.md at line 286
<td align="right">19%</td><td align="right">25%</td> - replacement in sections/2-git.md at line 292
<td align="right">16%</td><td align="right">19%</td> - replacement in sections/2-git.md at line 298
<td align="right">6%</td><td align="right">7%</td> - edit in sections/6-pijul.md at line 89
!! put the ThreadLocalRandom implementation in the clipboard before starting the demo !!`return java.util.concurrent.ThreadLocalRandom.current().nextInt(1, 7);` - edit in sections/6-pijul.md at line 93
pijul status - edit in sections/6-pijul.md at line 95
vi README.md> This repo contains beers and movies that are important to me.pijul add Readme.mdpijul record -m "Initial patch" - replacement in sections/6-pijul.md at line 101[6.1824]→[3.356:375](∅→∅),[3.375]→[6.8619:8646](∅→∅),[6.1824]→[6.8619:8646](∅→∅),[6.8646]→[6.1851:1953](∅→∅),[6.1851]→[6.1851:1953](∅→∅),[6.1954]→[6.1954:1992](∅→∅),[6.1992]→[3.376:459](∅→∅),[3.459]→[6.2080:2090](∅→∅),[6.2080]→[6.2080:2090](∅→∅),[6.57106]→[6.2307:2313](∅→∅),[6.2307]→[6.2307:2313](∅→∅),[6.88]→[6.318:344](∅→∅)
vi Sample.javapublic class Sample {public static void main(String... args) {System.out.println(random());}private static int random() {return java.util.concurrent.ThreadLocalRandom.current().nextInt(1, 7);}}pijul add Sample.java#Identitiespijul key generate hanno - edit in sections/6-pijul.md at line 106
pijul status - edit in sections/6-pijul.md at line 107
(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/6-pijul.md at line 116
pijul branchespijul checkout masterpijul channelpijul channel switch next-weekpijul channel switch main - edit in sections/6-pijul.md at line 120
pijul add movies.txt - replacement in sections/6-pijul.md at line 126
pijul add movies.txtpijul add * - edit in sections/6-pijul.md at line 129
// copy the hashes somewhere - edit in sections/6-pijul.md at line 133
pijul log - replacement in sections/6-pijul.md at line 135
pijul apply <hash> (movie)pijul apply <hash> (another movie)// notice the dependent patch!lspijul logpijul unrecord --reset <hash> (another movie)pijul unrecord --reset <hash> (movie)pijul unrecord --reset <hash> (another movie) - replacement in sections/6-pijul.md at line 144
## The Bad## Pijul's current status - replacement in sections/6-pijul.md at line 147
<li>Complete rewrite in progress for v1.0</li><small><a href="https://pijul.org/posts/2020-11-07-towards-1.0">https://pijul.org/posts/2020-11-07-towards-1.0</a></small><li>v1.0-beta</li><small><a href="https://pijul.org/posts/2022-01-08-beta">https://pijul.org/posts/2022-01-08-beta</a></small> - replacement in sections/6-pijul.md at line 153
So in the demo I used Pijul 0.12, which was clearly labeled as a preview version for research purposes.So not production-ready in the slightest.Previous version of the talk I used v0.12, which was clearly labeled as a preview version for research purposes.v1.0 uses a complete rewrite of the patch format, amongst other things. - edit in sections/6-pijul.md at line 156
Now what would you do if you're building a version control system and a bug has to be fixed?This turns out to be quite a challenge.Version control systems that use itself for its versioning (bootstrapping) are famously hard when dealing with bugs.If you're building a compiler, for example, bootstrapping can be done one step at a time, and previous versions are always available to compile your current one.But a version control system has the additional problem that the previous versions might not always be easily accessible if there is a bug.So this is exactly what happened to Pijul. - replacement in sections/6-pijul.md at line 160
---It is now feature-complete and it will be backwards-compatible from now on.However, it is still in beta. - replacement in sections/6-pijul.md at line 163[6.7972986]→[6.691151:691173](∅→∅),[6.1621]→[6.7972986:7972987](∅→∅),[6.691173]→[6.7972986:7972987](∅→∅),[6.7972986]→[6.7972986:7972987](∅→∅),[6.7972987]→[4.1417:1629](∅→∅),[4.1629]→[6.691288:691637](∅→∅),[6.2360]→[6.691288:691637](∅→∅),[6.691288]→[6.691288:691637](∅→∅),[6.691831]→[6.691831:692034](∅→∅),[6.692034]→[6.2989:3050](∅→∅),[6.3050]→[6.692095:692337](∅→∅),[6.692095]→[6.692095:692337](∅→∅),[6.692453]→[6.692453:692454](∅→∅),[6.692805]→[6.692805:693009](∅→∅)
## Pijul towards v1.0* New change format; 'patches' are now called 'changes' <!-- .element: class="fragment fade-in-then-semi-out" -->* Apply dependent changes automatically <!-- .element: class="fragment fade-in-then-semi-out" -->* 'Branches' are now called 'channels' <!-- .element: class="fragment fade-in-then-semi-out" -->* Better support for large files and repositories by compressing changes <!-- .element: class="fragment fade-in-then-semi-out" -->* Interactive recording is replaced by a 'change draft screen' <!-- .element: class="fragment fade-in-then-semi-out" -->* Documentation is lagging a bit <!-- .element: class="fragment fade-in-then-semi-out" -->note:So this is what the Pijul maintainers are doing to make Pijul production-ready.* change draft screenWhich looks a bit like the interactive rebase screen in Git.* documentation is laggingI've used the Pijul v1.0-alpha for a bit in preparation for this talk and I found that the documentation is lagging a bit.It used to be better in v0.12.Which is no surprise, because the rewrite is not done yet.Overall, I think Pijul is quite promising, but it needs some work in its current alpha phase.So some of its popularity will be depending on how they will get to beta and stable versions later this year.[6.7972986]Overall, I think Pijul is quite promising, but it needs some work in its current beta phase.So some of its popularity will be depending on how they will get stable versions later this year.