this post was submitted on 27 Sep 2023
88 points (97.8% liked)
Linux
48652 readers
1232 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Why version them if you could simply have backups? I rarely want old config files...
I don't know about you, but I tend to make lots of little changes to my setup all the time. Versioning makes it easy to roll back those individual changes, and to tell which change broke what. Sure, you could accomplish the same thing with backups, but versioning offers additional information with negligible cost.
Why not stick them in a git repo?
Because the benefit gets lost if there are lots of autogenerated config files. Someone else said 'stick only the files you write yourself in the repo' and I guess that's a better idea than to stick all of them in a repo.
Versioning is one of those things that you don't realize you need until it's too late. Also, commits have messages that can be used to explain why something was done, which can be useful to store info without infodumping comments into your files.
Why versioning and not backups? I get the part of commit messages, but that's hardly worth the effort for me. If I have a config file which works, I usually keep it that way. And if it stops working, my old documentation is outdated anyway.
you just push the git repo to a remote somewhere and that's your backup
Why do we use versioning for code instead of backups? Simple, versioning is better than backups for almost all text files, since it's a granular backup with change messages etc.
You can ask the same question about code.
I use etckeeper to autocommit changes in /etc as git just has better and faster tools to look at the changes of a fle, compared to backup tools.
It's just so easy to do that there hardly is any point in not doing it.
In my experience, it's shockingly useful. For example, maybe I want to try out a new set of Emacs packages. I can make a branch, mess around for a bit, and even keep that configuration for a week or two. Then if I find out it's not good, I can switch back
I also rarely want old versions of my code, but I still use git. A very nice feature, besides the essential backup quality, is to synchronize dotfiles between machines and merge configs together if they diverge.
I sync them with Syncthing and can also access backups of the old files. I can also merge them with merge tools and create tagged versions with git. Most of the time I don't and I can't think of any instance where I used git to compare an old version with a newer config file. I get why we should version code, but config files for most desktop programs are hardly worth tracking because of the frequent intransparent changes.
I only track the dotfiles which I actually write, not the generated ones. So it's not so different from code. Desktop programs which generate intransparent config files suck. I only wish there was a good way to synchronize my Firefox using git. I know there is user.js but it all seems like a mess to me.
That's the way. Thank you.