welcome: please sign in

The following 209 words could not be found in the dictionary of 7 words (including 7 LocalSpellingWords) and are highlighted below:
above   add   Administration   admins   after   all   All   allow   am   and   And   any   anything   appropriate   apt   are   as   aside   Automated   automatic   automatically   back   be   before   behaves   bulk   bundled   but   by   Category   category   cd   change   changed   changes   checkout   code   comes   command   commands   commit   commits   committed   committing   config   Configuration   control   copy   creating   dates   default   deny   diff   differences   do   Dom   during   Each   editing   etc   Etc   etckeeper   Etckeeper   expected   file   files   following   for   formatted   from   generally   generated   get   gets   Git   git   had   handled   handy   happy   highest   hooks   hosts   http   if   If   in   included   init   Initial   Install   install   Installation   installed   installs   invoke   is   it   It   joey   just   Keeper   kitenet   lame   last   like   line   list   listing   location   log   lowest   machines   make   Management   manually   Message   message   modification   modified   modifying   most   move   msgs   Needs   net   normal   not   Notes   nothing   of   often   on   one   only   or   order   other   our   over   override   package   part   Periodic   Periodically   practice   pre   preference   preferred   probably   properly   provide   providing   puts   reason   registering   Remove   repository   revision   rm   run   scripts   see   set   should   since   something   specific   states   status   such   suitable   switch   switches   symlink   system   System   tempting   that   The   the   their   them   then   there   they   this   This   Those   time   tmp   to   tolerable   Tool   under   usage   use   useful   var   version   very   way   ways   which   While   with   Work   you   your  

Clear message


Etckeeper puts /etc under revision control, git by default, which then behaves like a normal git repository.

All our machines use EtcKeeper, which is installed automatically as part of the AutomatedSystemInstall.

1. Installation

apt-get install etckeeper

etckeeper init
cd /etc
git commit -am "Initial commit"

2. Git commands

The most useful Git commands are:

 git status                      (list of files and their Git states)
 git log                         (see commit dates & commit msgs)
 git log -p [FILE]               (see commits with diff included)
 git add FILE...                 (add FILE to git)
 git diff [FILE]                 (see any differences since last commit)
 git commit FILE...              (commit FILE after modification)
 git checkout FILE...            (override FILE with version from last commit)

3. EtcKeeper usage

Each time you make a change to a file or set of files and are happy with it, commit your change. If you are editing something in /etc/, you should probably be modifying or creating a config package.

It is tempting to use git commit -am "Message ..." which commits all files (-a) and provide the commit message on the command line (-m "..."). While that is tolerable practice, listing specific files on the command line and providing a properly formatted Git commit message is preferred over the "bulk" -am switches.

The reason for this is: the -a switch very often commits other changed files that had nothing to do with your commit, such as modified but not committed changes from other admins, or files automatically generated/modified by DomTool or system scripts.

Those automatically-modified files should be handled in one of the following ways, in order of preference from highest to lowest:

  1. If they change often (such as hosts.deny/hosts.allow), move them to /var/tmp/ (or other suitable location) and provide a symlink from /etc/, registering only the symlink in Git.
  2. Periodically commit them (just them) with the appropriate commit message (i.e. "Periodic commit of modified files")
  3. Remove them from Git (copy them aside, invoke git rm FILE; git commit -am "Remove FILE", and copy them back to expected location

3.1. Notes

EtcKeeper Debian package comes bundled with APT hooks which automatically invoke git commit -a before and after apt-get installs.

This is handy, but this way of pre-apt committing is lame. If there's anything to commit, do it manually. And generally if anything gets committed during the automatic run, it should be just files from category (2) above.

CategorySystemAdministration CategoryNeedsWork

EtcKeeper (last edited 2013-05-30 18:09:18 by ClintonEbadi)