wiki:Doc
Warning: Can't synchronize with repository "(default)" (Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.
Last modified 7 years ago Last modified on 07/22/2010 11:01:00 PM

Documentation

Target

The target of ConfMgr? is to make it easy to have a simple repository with one's configuration, while keeping the ability to have different options on different hosts.

The system works as follows:

  • There is a global config file which lists all the managed files and the different categories
  • The src folder holds all source files
  • The files from the src folder needed for the current host, once preprocessed (with confmgr build), are written in the dst hierarchy
  • The confmgr install command will copy / symlink / ... the files from the dst hierarchy to their actual destination

When a file has been modified, you should do the following:

  • confmgr retrieve which will update the file in the dst hierarchy with the modified versions
  • confmgr backport in order to un-preprocess those files, and backport their modifications to the src version
  • commit those modifications

Layout

A ConfMgr? repository has the following layout:

repo_root/
  config
  src/
    foo/
      __paths
      blah
      bar
    coin/
      __paths
      pan/
        __paths
        blih
        bleh
  dst/
    foo/
      blah
      bar
    coin/
      pan/
        blih
        bleh

In this structure, only the config file and src hierarchy need to be saved, the dst is only a temporary area.

Configuration

The main part of ConfMgr? configuration takes place in the config file.

It holds three sections:

  • default for global parameters; the most important is install_root which gives the root for installing the files
  • cats which will map hostnames to a list of categories
  • files which lists the files to build for a given category.