We want to have repositories that we use in our testing process (hence, "repo fixtures"). We need to satisfy a few constraints:
Repo fixtures need to be stored as "bare" git repositories in our tree (otherwise they are either stored with .git directories of their own, which doesn't work), or they are packed and unpacked (etc.) in some way, which is just overhead.
By making them "bare" repositories, it is still possible to clone them via a git clone /path/to/repo when deploying.
Fixtures, in general, suffer from opacity: it is difficult to see what is in a fixture, how it behaves, and how it has deviated over time from its original intent. We should have a readable functional definition of each repository fixture, so that it's clear what the contents are, and hopefully the intent.
It should be easy and automatic to create repo fixtures from our repo specifications.
the work
[x] make a place for the bare git repos (spec/repo-fixtures)
[x] make a place for scripts that can build those repositories (spec/repo-builders)
[x] make a script that can read all repo-builder scripts
[x] foreach repo-builder path name:
[x] create a git repo
[x] run the builder script against that git repo
[x] make sure there is an empty spec/repo-fixtures/ path
We want to have repositories that we use in our testing process (hence, "repo fixtures"). We need to satisfy a few constraints:
.git
directories of their own, which doesn't work), or they are packed and unpacked (etc.) in some way, which is just overhead.git clone /path/to/repo
when deploying.the work
cc #4