> It's not all about the storage requirement, it's also about the speed it
> takes to perform source code control operations.
> * Initial insertion
> * Checking in a new version of a file
> * Retrieving the current version (in a reverse delta scenario)
> * Retrieving an intermediate version
> * Computing the diff between two distinct versions
> * Reporting on revision logs (cvs log)
> * Merging branches
Of these, it seems to me that a common family file (an RCS, SCCS, or XDELTA
file) assists in log reporting, and possibly also in computing the diff, but
the latter only if the format is designed with great care. I'm not aware of
any case where a merge tool today is leveraging the storage format for merge
For logging, it's only helpful to have a family file if you believe that the
log entries belong on the files and not on the line of development. It's a
philosophical issue: are the comments on files or on changes? Probably both,
but it's legitemate to ask which ones to optimize.
For all the other operations you mention, having every version be a separate
entity is clearly more efficient and less prone to locking conflicts.
Received on Sat Oct 21 14:36:07 2006