Update for Pijul v1.0-beta

[?]
Jun 19, 2022, 10:13 AM
B7LX4UQGKIMNDG6GIRQ2NXYBGRCFJ3KRYMRPS3S6GK2BY5V2HK4AC

Dependencies

Change contents

  • replacement in docker/Dockerfile at line 9
    [5.21][5.21:44]()
    RUN mkdir /development
    [5.21]
    [6.258]
    # install vim
    RUN apt-get install -y vim
  • replacement in docker/Dockerfile at line 12
    [6.259][5.45:118]()
    # TODO:
    # * [ ] test drive the pijul demo in the `development` directory
    [6.259]
    RUN mkdir /development
  • replacement in index.html at line 111
    [6.487][6.65:128]()
    <strong>Time Elapsed: 54 min.</strong>
    [6.487]
    [6.550]
    <strong>Time Elapsed: 45 min.</strong>
  • replacement in sections/2-git.md at line 190
    [6.46679][6.46679:46718]()
    <td align="right">43%</td>
    [6.46679]
    [6.46718]
    <td align="right">44%</td>
  • replacement in sections/2-git.md at line 194
    [6.46784][6.46784:46823]()
    <td align="right">19%</td>
    [6.46784]
    [6.46823]
    <td align="right">25%</td>
  • replacement in sections/2-git.md at line 198
    [6.46895][6.46895:46934]()
    <td align="right">16%</td>
    [6.46895]
    [6.46934]
    <td align="right">19%</td>
  • replacement in sections/2-git.md at line 202
    [6.54885][6.47002:47040](),[6.47002][6.47002:47040]()
    <td align="right">6%</td>
    [6.54885]
    [6.47040]
    <td align="right">7%</td>
  • replacement in sections/2-git.md at line 232
    [6.47649][6.47649:47688]()
    <td align="right">43%</td>
    [6.47649]
    [6.47688]
    <td align="right">44%</td>
  • replacement in sections/2-git.md at line 237
    [6.47792][6.47792:47831]()
    <td align="right">19%</td>
    [6.47792]
    [6.47831]
    <td align="right">25%</td>
  • replacement in sections/2-git.md at line 242
    [6.47942][6.47942:47981]()
    <td align="right">16%</td>
    [6.47942]
    [6.47981]
    <td align="right">19%</td>
  • replacement in sections/2-git.md at line 247
    [6.54979][6.48088:48126](),[6.48088][6.48088:48126]()
    <td align="right">6%</td>
    [6.54979]
    [6.48126]
    <td align="right">7%</td>
  • replacement in sections/2-git.md at line 280
    [6.4228917][6.48645:48684]()
    <td align="right">43%</td>
    [6.4228917]
    [6.48684]
    <td align="right">44%</td>
  • replacement in sections/2-git.md at line 286
    [6.4229180][6.48761:48800]()
    <td align="right">19%</td>
    [6.4229180]
    [6.48800]
    <td align="right">25%</td>
  • replacement in sections/2-git.md at line 292
    [6.4229451][6.48879:48918]()
    <td align="right">16%</td>
    [6.4229451]
    [6.48918]
    <td align="right">19%</td>
  • replacement in sections/2-git.md at line 298
    [6.55099][6.48996:49034](),[6.4229717][6.48996:49034]()
    <td align="right">6%</td>
    [6.55099]
    [6.49034]
    <td align="right">7%</td>
  • edit in sections/6-pijul.md at line 89
    [6.1568][2.2:166]()
    !! 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
    [6.435][6.435:452]()
    pijul status
  • edit in sections/6-pijul.md at line 95
    [3.355]
    [6.1823]
    vi README.md
    > This repo contains beers and movies that are important to me.
    pijul add Readme.md
    pijul 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.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
    [6.1824]
    [3.460]
    #Identities
    pijul key generate hanno
  • edit in sections/6-pijul.md at line 106
    [3.504][3.504:521]()
    pijul status
  • edit in sections/6-pijul.md at line 107
    [6.2587][3.522:795]()
    (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
    [3.981][3.981:1026]()
    pijul branches
    pijul checkout master
    [3.981]
    [3.1026]
    pijul channel
    pijul channel switch next-week
    pijul channel switch main
  • edit in sections/6-pijul.md at line 120
    [3.1044]
    [3.1044]
    pijul add movies.txt
  • replacement in sections/6-pijul.md at line 126
    [3.1176][3.1176:1201]()
    pijul add movies.txt
    [3.1176]
    [3.1201]
    pijul add *
  • edit in sections/6-pijul.md at line 129
    [3.1259]
    [3.1259]
    // copy the hashes somewhere
  • edit in sections/6-pijul.md at line 133
    [3.1325]
    [3.1325]
    pijul log
  • replacement in sections/6-pijul.md at line 135
    [3.1364][3.1364:1434]()
    pijul apply <hash> (movie)
    pijul apply <hash> (another movie)
    [3.1364]
    [6.2747]
    // notice the dependent patch!
    ls
    pijul log
    pijul 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
    [6.2753][6.2753:2764]()
    ## The Bad
    [6.2753]
    [6.2764]
    ## Pijul's current status
  • replacement in sections/6-pijul.md at line 147
    [6.689545][4.1238:1416]()
    <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>
    [6.689545]
    [6.690001]
    <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
    [6.690015][6.690015:690161]()
    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.
    [6.690015]
    [6.690161]
    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
    [6.690162][6.690162:690758]()
    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
    [6.4236768][6.1593:1597](),[6.1593][6.1593:1597]()
    ---
    [6.4236768]
    [6.7972985]
    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 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.
    [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.