An ordinary data base, where each datum is, instead of a single file, a list of the file and all of its previous versions, which are identified by appending the file's original date into its name. (you'd rename today's yesterday's version either with its original date, if you can remember it, or today's date, since the new one won't have a date in its name - that would be the "superseded" date - as part of the "update" script. Yeah, today's date would be easiest.)
e.g:
A: Amplifiers 1. Transistor a. common emitter i. Circuit-A Circuit-A.20050618 Circuit-A.20041303 b. Circuit-B Circuit-B.20050213 2. Tube ... B: Oscillator ...
and so on.
Figuring out categories, of course, is left as an exercise for the reader. ;-)
Good Luck! Rich