Re: How do I trace changes in configuration files?
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Erik Josefsson wrote:
> I'm trying to learn how to set up my two Teres laptops so that they are
> identical.
>
> [...]
>
> I have tried to document my personal preferences before, but I have
> always ended up with unreadable handwritten notes.
>
> This time I thought I should do it in a more systematic way by somehow
> capture the difference between the default install and the result of my
> (often irrational) efforts to make my machines look and feel like I want
> it to.
>
> So, is there a way to trace/record/capture changes in all configuration
> files?
>
There are as many as people reading this channel :)
Probably the simplest (and, to some extent, most error prone) is to
simply make copies, edit only the copies. For example:
cp orig.conf orig.conf.$(date +%y-%m-%d_%H%M%S)
vi orig.conf
and then you'll end up with stuff like
orig.conf
orig.19-05-01_065356
orig.19-05-01_104022
(etc)
Then just use 'diff' against any two files to see what changed between
them.
Or you can use a revision tool. I ran across "rcs" a few years ago, and
while it's not something I always use, when I remember, it's pretty good
at what it does.
Either of these could be wrapped up in a little script --
#!/bin/bash
# 'rvi' - "revision-controlled" vi wrapper
# create a backup then edit the original file
cp -p "$1" "$1".$(date +%y-%m-%d_%H%M%S)
vi "$1"
ALTERNATE
#!/bin/bash
#'rvi' - revision control vi wrapper
# use the 'rcs' tool to checkout/checkin files
co -l "$1"
vi "$1"
ci -u "$1"
Personally I like vi, but if you don't, replace it with whatever your
editor of choice is. The scripts probably have flaws that someone will
point out soon (like calling it with no file, or multiple files, etc).
> The idea is then to just replace the default configuration files with
> the files where my preferences have been saved.
As far as actually propagating changes, that gets a little more
difficult -- but if all the config files are in $HOME/.config ... well,
just use a cronjob to sync daily or something.
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEBcqaUD8uEzVNxUrujhHd8xJ5ooEFAlzJgxsACgkQjhHd8xJ5
ooEKAwf/aUN+2DkbpzQKxEXkLWjCDXacI2MnvSUfpAOkxid4rcnNHZRqjuww2Kcj
caZj4D/T8P2Ah9HetitxRW8Cx22Z0cggM5WBIquEssAPT833mp8F5uCgFADVZ0O7
Z5xoZP9+DW3umcVnjdEfT844xFsL5dRmKmZ31HAQQlVSBbzvMxFwjjkowVE4zcTg
YYRm4uPPqW5JNPa9Q4j9lb5Cv3w54v31OVKS62QCYZs9Nenr4L2e7/J+lO9XKAcG
l6LR/9ay2A9ItlqmNnnEZSaoAOxKrScqIGnVwDe9HtKIpm4mBU0/m18ROOqhqO5c
dshWFqQ/o/6VPYf/JAVoG9obev9lOg==
=9ovY
-----END PGP SIGNATURE-----
--
|_|O|_|
|_|_|O| Github: https://github.com/dpurgert
|O|O|O| PGP: 05CA 9A50 3F2E 1335 4DC5 4AEE 8E11 DDF3 1279 A281
Reply to: