I am working on a little side project and I am currently trying to work out how to hold a history.
At the top is a document, each document is a series of name / value pairs with the value potentially being a list of name / values itself. Each document is stored within a file and is human, as well as machine, readable.
So I need to contain the history within the document and keep it human readable. I would like to just append the file with the latest version, but that would result in a large file in the end with often only one or two values changing on each update.
My original idea was this:
0 {
name bob
age 42
address {
house 4
road high street
}
}
1 {
# another year older
age 43
}
2 {
address {
# change the house number
house 7
}
}
This works from a storage and retrieval perspective, however after a few versions it could become cumbersome. I can rebuild the content for any version from the previous ones, but is there a better way?
Remember I need to keep it human readable.