From: Shawn Pearce <spearce@spearce.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git <git@vger.kernel.org>, Jeff King <peff@peff.net>,
Michael Haggerty <mhagger@alum.mit.edu>,
David Borowitz <dborowitz@google.com>,
Stefan Beller <sbeller@google.com>
Subject: Re: reftable [v6]: new ref storage format
Date: Tue, 8 Aug 2017 15:30:28 -0700 [thread overview]
Message-ID: <CAJo=hJusmthiWG6sQ27_anZ7DVbEKGNHyOCUigWP6Naj4ThDvg@mail.gmail.com> (raw)
In-Reply-To: <xmqqpoc5c15v.fsf@gitster.mtv.corp.google.com>
On Tue, Aug 8, 2017 at 12:25 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Shawn Pearce <spearce@spearce.org> writes:
>
>> For `log_type = 0x4..0x7` the `log_chained` section is used instead to
>> compress information that already appeared in a prior log record. The
>> `log_chained` always includes `old_id` for this record, as `new_id` is
>> implied by the prior (by file order, more recent) record's `old_id`.
>>
>> The `not_same_committer` block appears if `log_type & 0x1` is true,
>> `not_same_message` block appears if `log_type & 0x2` is true. When
>> one of these blocks is missing, its values are implied by the prior
>> (more recent) log record.
>
> Two comments.
>
> * not-same-committer would be what I would use when I switch
> timezones, even if I stay to be me, right?
Correct. This is based on the theory that the timezone in a reflog is
actually the system timezone, not your timezone. If you push to a
remote system, that system's reflog will be using that system's
timezone, not your timezone. So you aren't really that different, and
we can compress the timezone part away. Also, if you do move
timezones, you are likely to remain in that timezone for some period
of time, and such we can compress many log records again with the same
timezone+name+email.
Its ancient history from my research with "pack v4", but people don't
really change timezones very often in the Git committer data. I
suspect its even more true with reflog data.
> I am just wondering
> if it is clear to everybody that "committer" in that phrase is a
> short-hand for "committer information other than the timestamp".
Maybe not. I will try to come up with another shorthand name for this.
> * Should the set of entries that are allowed to use of "chained"
> log be related to the set of entries that appear in the restart
> table in any way? For a reader that scans starting at a restart
> point, it would be very cumbersome if the entry were chained from
> the previous entry, as it would force it to backtrack entries to
> find the first non-chained log entry. A simple "log_chained must
> not be used for an entry that appear in the restart table" rule
> would solve that, but I didn't see it in the document.
Good catch! This is implemented as you described in JGit (for the
reasons you described), but not documented. I'll fix it.
next prev parent reply other threads:[~2017-08-08 22:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-07 1:47 reftable [v6]: new ref storage format Shawn Pearce
2017-08-07 18:27 ` Stefan Beller
2017-08-07 18:30 ` Shawn Pearce
2017-08-08 23:52 ` Stefan Beller
2017-08-08 7:28 ` Jeff King
2017-08-08 19:01 ` Junio C Hamano
2017-08-08 22:27 ` Shawn Pearce
2017-08-08 23:34 ` Junio C Hamano
2017-08-09 0:01 ` Shawn Pearce
2017-08-08 19:25 ` Junio C Hamano
2017-08-08 22:30 ` Shawn Pearce [this message]
2017-08-14 12:13 ` Michael Haggerty
-- strict thread matches above, loose matches on Subject: below --
2017-08-15 22:47 Shawn Pearce
2017-08-18 9:24 ` Michael Haggerty
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='CAJo=hJusmthiWG6sQ27_anZ7DVbEKGNHyOCUigWP6Naj4ThDvg@mail.gmail.com' \
--to=spearce@spearce.org \
--cc=dborowitz@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mhagger@alum.mit.edu \
--cc=peff@peff.net \
--cc=sbeller@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).