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.

  • Laser@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 天前

    Well, it doesn’t silently ignore files, it tells you if the work tree is dirty.

    Though I’ve tripped over the different behaviors of the repl vs the rest of the tools myself in funny ways

  • NostraDavid@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 天前

    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.