0

I working on a program that stores proprietary objects in a database (as BLOBs). We'd like to add a versioning capabilities (so the user can store multiple versions of an object with timestamps, etc.).

One approach is to use database and store each version in the object in a separate BLOB.

Another approach is to keep all versions of the object in a single BLOB. In this case I need to provide some versioning mechanism. I don't want to develop a code for this task from scratch. There are many version control systems around, but I am trying to find a library or C++ code that what allow me to perform some very simple tasks:

  1. Efficient storage of deltas
  2. Quick access to the list of revisions
  3. Ability to extract, replace and add revisions

I use C++ Builder from Embarcadero.

any advice on how to embed simple revision handling mechanism into the code?

Igor
  • 33
  • 4
  • One blob per version seems to be the simplest approach by far. You get requirements 2 and 3 for free. Deltas can be computed at runtime (although I'm not sure how useful that would be without mapping that delta to a functional delta) – Botje Jul 29 '20 at 08:06
  • Thank you for the comment, that's the first approach I listed above.A blob per version might take too much space, that's why I am asking about deltas (it improves storage, AFAIK). – Igor Jul 30 '20 at 03:39
  • Disk space is cheap, fixing bugs in the field is not. At least use separate blobs for a prototype version while you research efficient storage. – Botje Jul 30 '20 at 07:29

1 Answers1

0

As you say, there are a few native revision control databases that can handle this quite efficiently. TerminusDB has a Rust library for its store - not C++...