$Id$ tags aren't required to have a file in CVS, just an extra. I prefer to get specific with my keywords and use $File$, $Author$, $Revision$ on separate lines I was intending to only add RCS keywords to files that I edit, the first time i edit them. If I was going to do LFS I'd start with all config files in source control. Worst case, if you screw something up, you can use RCS from a boot disk to manually restore the file to any revision you have made, including factory default. I see the PITA involved in the extra steps to tweaking a config:
$ cd /etc/mail $ cvs update $ vi sendmail.cf #yes VI, MUWAHHHHHhahahahahah $ cvs commit But the advantages (to me) outweigh the pain. --Christopher On Wed, 2001-12-12 at 04:38, Jacob Meuser wrote: > On Tue, Dec 11, 2001 at 07:51:39PM -0800, Christopher Maujean wrote: > > I was wondering how many people kept their /etc under CVS control. I > > haven't found any cons to it so far, but it's not mentioned in any of my > > "sysadmin" books. Are there reasons (besides not wanting to take the > > extra steps to change a config file, and the potential security hole > > generated by not properly configuring the CVS pserver) not to? > > I don't keep /etc under CVS, but it does sound like a good idea ... > > Except ... > > It could be a PITA to put $Id$ tags in every file, and make sure they > don't affect the workings of the file. > > (most) package managers (OpenBSD has a policy that forbids fiddling with > /etc, instead, new versions of config files are installed to > $PREFIX/share/examples/$name_of_pkg) keep track of files in /etc and > modifying them could lead to more PITAes at update/upgrade time > > But, how many config files do you really need to keep tabs on? It might > be easier to just write a sh or perl script, or Makefile for that matter, > to copy the files you want to save to a safe place and then maybe even > automatically produce diffs of your version vs the default version? > > I could like something like that ... > > /ec/Makefile.lo-tek > *-----------------* > DIR= /etc > > FILES= rc.conf.local rc.local rc.shutdown mail/sendmail.cf mail/aliases \ > hosts group passwd fstab sshd_config > > XDIRS= mail > > SAVE_DIR= /var/save/root > > DIFF_DIR= /var/save/diffs > > INSTALL_DATA= /usr/bin/install -c -m 444 > > INSTALL_DIR= /usr/bin/install -d > > save-dir: > test -d ${SAVE_DIR} || ${INSTALL_DIR} ${SAVE_DIR} > > xdirs: > .for i in ${XDIRS} > ${INSTALL_DIR} ${SAVE_DIR}/${i} > .endfor > > save: save-dir xdirs > .for i in ${FILES} > ${INSTALL_DATA} ${DIR}/${i} ${SAVE_DIR}/${i} > .endfor > > update: save > echo "garbage" >> /etc/hosts > echo "Eugene\nUnix\nand\nGNU\n/Linux\nUsers\nGroup\nwas\nhere!" \ > >> /etc/mail/sendmail.cf > # as "for example"s, more interesting would be > # cd / && tar zxpvf /pub/EUGLIX/etc01.tgz > # apt-get update && apt-get upgrade > # but then, these .for loops don't work > # with GNU make (wouldn't be hard to "port" > # though) > > diff-dir: > ${INSTALL_DIR} ${DIFF_DIR} > > diff: update diff-dir > .for i in ${FILES} > cmp -s ${DIR}/${i} ${SAVE_DIR}/${i} || \ > diff -u ${DIR}/${i} ${SAVE_DIR}/${i} > \ > ${DIFF_DIR}/${i:S/\//-/g}.diff || /usr/bin/true > .endfor > > recover: diff > .for i in ${FILES} > test -f ${DIFF_DIR}/${i:S/\//-/g}.diff && \ > patch -p 0 < ${DIFF_DIR}/${i:S/\//-/g}.diff || \ > /usr/bin/true > .endfor > *------------------* > > -- > <[EMAIL PROTECTED]> > <[EMAIL PROTECTED]> > <[EMAIL PROTECTED]> -- Christopher Maujean IT Director, Premierelink Communications [EMAIL PROTECTED] http://www.premierelink.com/ 541-344-8575x305 PGP: --------------------------------------------------------------- http://www.keyserver.net/ KeyID: EFAF4176 Fingerprint: 55E6 4DE1 D7D3 361E F265 C094 46F2 7B62 EFAF 4176 ---------------------------------------------------------------