All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Vilain <sam@vilain.net>
To: Joshua Roys <roysjosh@gmail.com>
Cc: gittorrent@lists.utsl.gen.nz, git@vger.kernel.org,
	Jonas Fonseca <fonseca@diku.dk>
Subject: Re: GTP/0.1 terminology 101: commit reels and references
Date: Mon, 28 Jul 2008 19:02:50 +1200	[thread overview]
Message-ID: <1217228570.6750.24.camel@maia.lan> (raw)
In-Reply-To: <488D42B6.4030701@gmail.com>

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

       reply	other threads:[~2008-07-28  7:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <488D42B6.4030701@gmail.com>
2008-07-28  7:02 ` Sam Vilain [this message]
2008-07-28  7:24   ` GTP/0.1 terminology 101: commit reels and references Junio C Hamano
2008-07-28 10:03     ` Sam Vilain
2008-07-28 12:01       ` Johannes Schindelin
2008-07-28 19:26         ` Sam Vilain
2008-07-28 22:30           ` Johannes Schindelin
2008-07-29  7:00             ` Sam Vilain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1217228570.6750.24.camel@maia.lan \
    --to=sam@vilain.net \
    --cc=fonseca@diku.dk \
    --cc=git@vger.kernel.org \
    --cc=gittorrent@lists.utsl.gen.nz \
    --cc=roysjosh@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.