Best way to store multiple revisions of a text file to a single file
<p>I'm working on a C# application that needs to store all the successive revisions of a given report file to a single project file: each time the (plain text) report file changes, the contents of the new version shall be appended to the project file, along with some metadata. Other requirements:</p>

<ul>
<li>each version of the report file is 100 kB to 1 MB. Theoritically, the maximum number of revisions is unlimited but it should be less than 1000 in practice. </li>
<li>to keep things simple, I'd like to avoid computing differences between the revisions of the report - just store the whole report to the project file every time it has changed.</li>
<li>the project file should be compressed - it doesn't need to be a text file</li>
<li>it should be easy to retrieve a given version of the report from the application</li>
</ul>

<p>How can I implement this in an efficient way? Should I create a custom binary file, consider using a database, other ideas?</p>

<p>Many thanks, Guy.</p>
