Sandglass is a tool for versioning of configuration files. It is designed to eliminate problems of existing solutions while keeping their benefits. In addition, it brings some new and useful features like synchronization with remote server and integration with other management and configuration infrastructure tools.
The tool is primarily designed for Fedora and Red Hat Enterprise Linux distributions, but the interface is designed to be easily extended to support other distributions and package managers.
The source codes are available under GNU General Public License 3.
The project was developed as a Bachelor's thesis at Faculty of Information Technology, Brno University of Technology. Now it will be run under Fedora Project.
If you have some questions or ideas, feel free to contact me.
The main concept is shown in a figure below. Sandglass provides CLI interface to invoke user operations (local, ssh). This interface is also used to invoke operations based on package manager events and periodic events. QMF and D-Bus intrface is provided for easy integration of Sandglass into other configuration management tools.
Git is used as the versioning backend. It was chosen because of its distributiveness, high performance, and security. Separation of git into a bunch of small tools makes the operations with git internal objects easy, flexible, and powerful.
There is no benefit of supporting multiple versioning backends. Sandglass provides easy-to-use command line tools for versioning control. You do not have to be familiar with any versioning system.
All necessary data of Sandglass are stored in compliancee with
Fedora Packaging Guidelines
(and Filesystem Hierarchy Standard) in
/var/lib/sandglass. Directories with configuration files are not
polluted by metadata of versioning system.
You should check Matahari Project Homepage. Sandglass Matahari Agent exposes Sandglass interface as a QMF model to qpid bus. This interface can be then used by other infrastructure tools. Some information about this can be also found on Fedora feature site of Matahari Based Fedora Management and Configuration Infrastructure (FMCI).
Yes, there are. Take a look at cfvers (very old) and etckeeper (quite new and useful). And I believe that there are some more.