7. Committing the repository

The process of adding and removing a package involves updating the GDBM files and HashDir objects that represent the various subdirectories in the system repository. All of these HashDir objects obediently record the contents of the updated files.

The system repository's commit function receives a FileInstall object, which is passed to each HashDir object's own commit function. In this manner, the contents of the system repository are atomatically updated, as described in Chapter 15, Installing files and packages.