Re: Entity back pointers to the branch Bill Frantz (frantz@communities.com)
Mon, 12 Jun 2000 13:01:35 -0700

At 02:42 PM 6/12/00 -0400, Jonathan S. Shapiro wrote:
>This raises an interesting design question about history tracking: should
>recording be per-file or per-commit? I'm currently building on the
>per-commit assumption, but it's not too late to change that.

Let me describe the system used by IBM, and its customers to maintain the source for VM/370 (at least back in the "good old days"). It is quite different from CVS, and provided some features that were quite useful. (I will actually describe the Tymshare variant.)

All source consisted of a base source file and a set of deltas. (Deltas were based on sticky line numbers in the source files.)

A particular version of a source file was defined by a file which contained the list of deltas to apply to the base to get that version. (There was a complex scheme which permitted several versions to coexist in one file system.)

All of the files were tied together with a naming convention. Translating this convention to the Unix syntax, assume we have a source file foo.

The base file would be foo.asm
The deltas might be named foo.fixoverrun, foo.newfeatures etc. The list of deltas might be named foo.version2

All the deltas in a particular change have the same extension name, e.g. newfeatures. In the Tymshare variant, there is also a human readable file, newfeatures.script which describes the change. (Script is a runoff like text formatting language.)

The disadvantages of this system are:

The advantages were: