This is more of a system config question than a programming one, but I think this community is the best one to ask about anything Git-related.

Anyway, I am setting up a new project with hardware that has 2 physical drives. The “main” drive will usually be mounted and have 10-20 config files on it, maybe 50-100 LOC each. The “secondary” drive will be mounted only occasionally, and will have 1 small config file on it, literally 2 or 3 LOC. When mounted, this file will be located in a specific directory close to the other config files.

I would like to manage all of these files using git, ideally with a single repo, as they are all part of the same project. However, as the second drive (and thus the config file on it) will sporadically appear and disappear, Git will be confused and constantly log me adding and deleting the file.

Right now I think the most realistic solution is to make a repo for each drive and make the secondary drive a submodule of the main. But I feel like it is awkward to make a whole repo for such a simple file.

What would you do in this situation, and what is best practice? Is there a way to make this one repo?

  • /home/addison
    link
    fedilink
    arrow-up
    4
    ·
    3 months ago

    I haven’t seen git update-index --skip-worktree mentioned yet. You can read about the motivation for this feature in the git scm docs.

    I have used it in the past when a professor wanted us to clone repos for assignments that included some opinionated settings for VSCode that I didn’t want to use. Skipping the work tree for that directory allowed me to change or delete the config files without git complaining every time I pushed or pulled or whatever, and the changes I made remained local.

    You could set up a couple git aliases to “freeze” and “thaw” your config files on the second drive.