System profile versioning may have different usages. This solves various problems related with the complexity of managing workstations and servers.
Do you have a notebook computer ?
Have you ever wished to have one set of configuration files for the office and one for the home and yet another one for a customer site ? And be able to switch at will between those configurations, even at boot time ?
Yet, you wish be able to share some aspect of the system configuration in all three locations.
Are you doing things more and more complicate with Linux these days ?
Have you ever wish to be able to freeze a working setup and then experiment with new settings while all the users are away ?
Have you ever been caught very late at night with a non-working setup ? The user will be back in a few hours and you are not able to get back to the working state you had when you attempted to enhance the system.
Well, if you answer yes to any of those question, then System profile versioning is for you.
A system profile is defined by a set of configuration files. Those configuration files belong to various sub-systems. Sometime a file even belongs to two or more sub-systems.
A version is a collection of all configuration files which define a specific state of your computer. By switching profile version, you are effectively saving the current configuration file into a special storage area (/etc/linuxconf/archive) and restoring files from the new activated version.
Swapping all configuration files from a working profile and replacing them by other configuration files is not always useful. For example you might define two system profile version: One for the office and one for the home. Some sub-systems are identical for both environment and you expect that when you maintain one aspect of you Linux notebook at home, those change will be available at the office next morning.
Sometime you expect the two environment to evolve separately. In fact, you need control sub-system per sub-system on how things are saved/restored between various system profile versions.
Linuxconf use the RCS system to save copies of the various files. RCS is used to keep an history of the state of the configuration files. This will be used one day in Linuxconf to create audit reports showing how various sub-systems were managed over time.
The archiving technology might evolve one day to use an archive server. This would allows one to track efficiently the configuration changes of many workstation and servers.