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?

  • ratel@mander.xyz
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    3 months ago

    If you commit the file on the secondary drive then it will be in the same repository as the rest of the code so you will end up with a large tree in that repo or you will need to move it over with the rest of the files. Why not make a symlink on the secondary drive pointing to the config in the repository? This way you can track it in git and have it located on the secondary.

    • anon2963@infosec.pubOP
      link
      fedilink
      arrow-up
      3
      ·
      3 months ago

      Usually these drives will be mounted on Linux. But occasionally they will be mounted on Windows 10 where I do not have admin or developer mode access, so I cannot depend on symlinks.

      • MajorHavoc
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        If you put a git init --bare push/pull target on the removable drive, then all of git’s awesomeness will start working in your favor.

        Git knows that a push/pull may switch from Linux to Windows and back. Git knows the remote won’t always be there. Lots of nice stuff, for removable drives, if you can make it work.