B7LX4UQGKIMNDG6GIRQ2NXYBGRCFJ3KRYMRPS3S6GK2BY5V2HK4AC
KPOZ5SU6C3MZHU7OBWAWDGPD5S6NOVVTQKZE2VZDIRMBYTNXGDUQC
F3AD6JXXPNTLIUXPX7CUPZCD53SLZFKCSSNVQDW6Q32BUIT2RNWAC
IYB7IPPJU7FBTQHVU5JQRDKXRXSANGAPYMURMCI4LXTM6GK7FZJAC
W3AVITLURHFEDZVM75KBEIZVEPGCXLYDLJM5IG2H5AUSOJFY2QHAC
DETDFBZFJ75KSHW5KMDP54DNOZW5QXRDQQWIIMC64BF3LF7JTHSQC
GHBCQL5FK2IN6TI2FR47ZLDEUFKXAWZWSZK64AMNDW7BVC7KQ5QAC
ISYGO74Y272CLCGQBX4SLPAREK5223WH74O5RMWD5I7GQSA7T2BAC
UH3YXOLFMHJD6GJOW6P5BSHAM5XVV623ZBEYNKSF5YFFSGC7UWPAC
CBUCBYTVFSAQ3GYIJBE7MGYCEQ3SPDYVJ3OZ4JM2QM4TM6H6GFSQC
ARAFRHKULUG66WDRPKJB4GL5WCMP4LD2TRTYO3RA2T3XZDRLXEUQC
73PQOETUBJ2H5A6B3YW3KJ5C2TGOBUXXXSIVWPHCFVC5J3PNQGMQC
5LKTNB6ODFPX45VJBT5H34WZFJBVWWYSCS2HRMKKJPPO3M2M75NAC
NYFLNSVVETUQ6ODIEMFKWUXPLWM2XQNSKLO5J7ZHCHP6L5JQLSEQC
I3EH5ASIV5QRCO2WGVEK6RAQUPQZBENXCO7KKG5E22A3XOOQDH5QC
SQWPGFUETQPYAW2VZRIDZWGXQN4GCMSPHYQ4PLWMESLDJTPACGXAC
QUG3TDX353EQPQKCFTSNC4PMO2DP7QOJ3MEGFTKLZW6D7M6FLPCAC
5JGZ5VE72HPFKTMGJU5U67YU3MKICVD5YGUKP2XJVBCEZ7SKBCUAC
YZWWU6JGAL2MEY5L7HJTXJVWZAREMZ43AHOZPWDMFLV5ECBTH77QC
7RVMAQLPBTL46TDHWJM4RSSB6PUZVLNRQW4CZ6FH6OMAVFCHCUMAC
4AZS4L6BP7TTCR5RUB36TG5PTEEIMSTGKB5IVB5QNHJVMRF7LMZQC
vi Sample.java
public 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
#Identities
pijul key generate hanno
(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).)
<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>
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.
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.
## 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 screen
Which looks a bit like the interactive rebase screen in Git.
* documentation is lagging
I'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.
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.