I’ve always hated the fact that Nix silently ignores any file that’s not tracked by Git. Partly because I always forget this and have to re-build every time that I add a new file. But also the fact that Nix is coupled to VCS.

jj is a new VCS that wraps git. jj has a slightly different (improved) workflow, and doesn’t have a staging area. What this means for Nix is that whenever I create a new file I have to run jj status (the equivalent to git status) before I can build with Nix, which feels incredibly silly to me.

Thanks for coming to my Ted talk.

  • NostraDavid
    link
    fedilink
    English
    arrow-up
    3
    ·
    9 days ago

    I use a Justfile, so I can make a file containing local shortcuts via the just binary.

    I have created this so I can run just switch [wodan] ([] implies optionality):

    default_host := "wodan"
    
    set shell := ["bash", "-euo", "pipefail", "-c"]
    
    # Apply a host configuration immediately and persist across reboots.
    switch host:
      sudo nixos-rebuild switch --flake .#"{{host}}"
    

    By doing this, I could prepend git add . or jj status, while sticking to just switch for myself and not having to think about any pre-steps.

    https://github.com/casey/just

    I just think it’s neat.