Originally from: garden bombing 

In a previous post, I described how I setup cfengine with version control (git). In that setup I had two git repositories: one housing cfengine configuration policy and one golden files and templates. A git mirror was used as a staging mechanism for the policy repo so that I could ensure changes were recorded.

This worked well but the lack of staging for the second repository was obvious. The best way I saw to correct this was to merge the two git repos and continue to use the git mirror process that was already established. A quick search on stackoverflow showed that this was easier than expected by using the git filter-branch command (thanks MiniQuark!).

In hindsight it seems pretty silly not to have done this to begin with. Now all changes that go through the configuration mangement system are under version control with a good presentation mechanism.