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.

  • Corbin@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    15 days ago

    Get in the habit of running jj desc midway through a commit. Have you just discovered an insight in an old module? Do you see how you will write the next few hunks of code? Did you have a moment of clarity where you zoomed out and saw what the next week will look like? Document it! Let your commit messages have multiple paragraphs, each written at a different time. Fill your commits with annotations about what you were doing so that future-you will understand past-you.

    The reasoning here is that, aside from the jj file subcommands which directly alter the index, almost any jj subcommand will work. You might as well pick a subcommand which advances your goals.