Thread (1 message) 1 message, 1 author, 2016-06-15

Re: GTP/0.1 terminology 101: commit reels and references

From: Sam Vilain <hidden>
Date: 2016-06-15 22:45:03

Josh, I'm cc:'ing the main list with this one as well, as I think it
falls into the scope of discussions of wider interest than the rfc- and
implementation-specific discussions that (I envisaged would) happen on
the gittorrent list.

On Sun, 2008-07-27 at 23:53 -0400, Joshua Roys wrote:
Here's some terms, as best as I understand them.

The *Commit Reel* is a sequence of objects between two reference points, 
sorted in a deterministic fashion.  The two reference points are 
*Reference* objects, or a signed tag containing a collection of git refs 
(similar to the output from `git show-ref`).
Yes, that's right.  We have the two slightly ambiguous terms, "refs",
which mean the same thing as the rest of git, and "References", which
are more like .git/packed-refs.  Perhaps this is a good time to pick a
better name.  "Slice" would be an accurate term, though it's certainly
tempting to pick another term from the tape taxonomy, such as "Splice"¹
or "Mark"².
  Commit reels can also, and generally do, include the objects required
 for a specific commit.
Yes.  The only times where they wouldn't contain all the objects
required for the commits within the reel, is when those objects happened
to be contained by a previous reel.

This is one of the design decisions which I think may be a mistake; a
less expensive to calculate definition of a reel would be *all* objects
between the starting and ending Reference objects.  The current
definition requires a hash index of objects in each reel, which must be
consulted once for all objects when creating the reel index.
As an example, a commit reel could be the set of objects between the 
v2.6.25 and v2.6.26 tags of the Linux kernel.  The only thing we would 
need added to those tags is the list of heads (and tags) at the time of 
the tagging.
Correct.  It represents all of the changes in a given repository over a
period of time.
Those two structures form the basis for two *Peer Wire Protocol* (PWP) 
messages, Reels and References.

Any questions, corrections, or rotten vegetables?
No, I think that's all good so far...

Cheers,
Sam.

¹ - see
http://en.wikipedia.org/wiki/Reel-to-reel_audio_tape_recording#Description
² - as used by the old unix "mt", see eg
http://docs.sun.com/app/docs/doc/816-0210/6m6nb7mf3?a=view
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help