Does anyone have experience using GNU Stow for managing dot files? I’m especially interested in using it to build a git repo to include my .vimrc file so I can sync it between hosts.

I know I’ve seen other methods, such as making your home directory a bare git repo, so you can check-in your config files without moving them. There is also the chezmoi golang project.

How do others sync .vimrc between hosts?

    • umbraklatOP
      link
      fedilink
      41 year ago

      I’ve never heard of cp -faTs before. I did some experimenting and was surprised that it was recursive. I thought you needed an -R for that, but you don’t. So, cp -faRTs appears to do the same thing, but is funnier.

      In any case, thanks for sharing your repo. I take it, that after the initial install, you can just repeatedly git pull https://git.sr.ht/~igemnace/vim-config and then run vim-config/scripts/install-cfg to keep your config files up-to-date.

      • @[email protected]
        link
        fedilink
        2
        edit-2
        1 year ago

        Right! Recursive is implied by -a

        Yep. There’s a single ./install script in project root that calls install-cfg and install-plugins. I only really need to run it once (first time I set up on a machine), and every time I add a new file. If all I’ve done is update existing files, a simple git pull will update my dotfiles’ content automatically, as everything is symlinked already.

    • @[email protected]
      link
      fedilink
      11 year ago

      Nice! I never knew cp could do that. No more struggling to remember in which order the ln parameters should be!

      • @[email protected]
        link
        fedilink
        2
        edit-2
        1 year ago

        Worth noting that this is GNU-specific! For macOS for example, you’d have to install GNU userland (e.g. from homebrew) to get the flag. There’s still value in using other solutions (such as ln), portability-wise.

        As an aside: I mostly think of the ln param orders as exactly the same as cp and mv:

        cp FROM TO
        mv FROM TO
        ln [-s] FROM TO
        

        Maybe that could help!