From: Josh Triplett <josh@joshtriplett.org>
To: Jacob Keller <jacob.keller@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Christian Couder <christian.couder@gmail.com>,
git <git@vger.kernel.org>,
"Shawn O. Pierce" <spearce@spearce.org>,
Jeff King <peff@peff.net>,
Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
Mike Hommey <mh@glandium.org>
Subject: Re: Regarding "git log" on "git series" metadata
Date: Sun, 6 Nov 2016 17:18:41 -0800 [thread overview]
Message-ID: <20161107011841.vy2qfnbefidd2sjf@x> (raw)
In-Reply-To: <CA+P7+xoxjwvjXrW0Pwh7ZK-OYBiYamPAxvf_=zqJOsQ8xWDPWw@mail.gmail.com>
On Sun, Nov 06, 2016 at 12:17:10PM -0800, Jacob Keller wrote:
> On Sun, Nov 6, 2016 at 9:33 AM, Josh Triplett <josh@joshtriplett.org> wrote:
> > On Sun, Nov 06, 2016 at 09:14:56AM -0800, Junio C Hamano wrote:
> >> Josh Triplett <josh@joshtriplett.org> writes:
> >> > We could, but if we (or one of the many third-party git implementations)
> >> > miss a case, gitlinks+reachability may appear to work in many cases with
> >> > dataloss afterward, while gitrefs will fail early and not appear
> >> > functional.
> >>
> >> I wonder what happens if we do not introduce the "gitref" but
> >> instead change the behaviour of "gitlink" to imply an optional
> >> reachability. That is, when enumerating what is reachable in your
> >> repository, if you see a gitlink and if you notice that you locally
> >> have the target of that gitlink, you follow, but if you know you
> >> lack it, you do not error out. This may be making things too
> >> complex to feasibily implement by simplify them ;-) and I see a few
> >> immediate fallout that needs to be thought through (i.e. downsides)
> >> and a few upsides, too. I am feeling feverish and not thinking
> >> straight, so I won't try to weigh pros-and-cons.
> >>
> >> This would definitely need protocol extension when transferring
> >> objects across repositories.
> >
> > It'd also need a repository format extension locally. Otherwise, if you
> > ever touched that repository with an older git (or a tool built on an
> > older libgit2 or JGit or other library), you could lose data.
> >
> > It does seem conceptually appealing, though. In an ideal world, the
> > original version of gitlink would have had opt-out reachability (and
> > .gitmodules with an external repository reference could count as opting
> > out).
> >
> > But I can't think of any case where it's OK for a git implementation to
> > not know about this reachability extension and still operate on the
> > gitlink. And given that, it might as well use a new object type that
> > the old version definitely won't think it understands.
> >
> > - Josh Triplett
>
> That's still only true if the receiving end runs fsck, isn't it? I
> suppose that's a large number of receivers, and at least there are
> ways post-push to determine that objects don't make sense to that
> version of git.
>
> I think using a new mode is the safest way, and it allows easily
> implementing RefTrees as well as other projects. Additionally, if we
> *wanted* additional "opt-in / opt-out" support we could add this by
> default to gitrefs,and they could (possibly) replace gitlinks in the
> future?
Once we have gitrefs, you have both alternatives: reachable (gitref) or
not reachable (gitlink).
However, if you want some way to mark reachable objects as not
reachable, such as for a sparse checkout, external large-object storage,
or similar, then you can use a single unified mechanism for that whether
working with gitrefs, trees, or blobs.
next prev parent reply other threads:[~2016-11-07 1:20 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-04 17:57 Regarding "git log" on "git series" metadata Junio C Hamano
2016-11-04 19:19 ` Jacob Keller
2016-11-04 19:49 ` Jeff King
2016-11-04 21:55 ` Josh Triplett
2016-11-04 23:37 ` Jacob Keller
2016-11-04 23:46 ` Josh Triplett
2016-11-04 23:34 ` Jacob Keller
2016-11-05 1:48 ` Jeff King
2016-11-05 3:55 ` Josh Triplett
2016-11-05 4:41 ` Jeff King
2016-11-05 4:41 ` Junio C Hamano
2016-11-05 4:44 ` Jeff King
2016-11-05 5:00 ` Junio C Hamano
2016-11-04 20:47 ` Christian Couder
2016-11-04 21:19 ` Josh Triplett
2016-11-04 23:04 ` Christian Couder
2016-11-13 17:50 ` Stefano Zacchiroli
2016-11-05 21:56 ` Christian Couder
2016-11-05 4:42 ` Junio C Hamano
2016-11-05 12:17 ` Christian Couder
2016-11-05 12:45 ` Christian Couder
2016-11-05 15:18 ` Josh Triplett
2016-11-05 20:21 ` Christian Couder
2016-11-05 20:25 ` Josh Triplett
2016-11-06 4:50 ` Jacob Keller
2016-11-06 16:34 ` Josh Triplett
2016-11-06 17:14 ` Junio C Hamano
2016-11-06 17:33 ` Josh Triplett
2016-11-06 20:17 ` Jacob Keller
2016-11-07 1:18 ` Josh Triplett [this message]
2016-11-07 5:35 ` Jacob Keller
2016-11-07 9:42 ` Duy Nguyen
2016-11-07 16:11 ` Josh Triplett
2016-11-09 22:57 ` Junio C Hamano
2016-11-04 21:06 ` Josh Triplett
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=20161107011841.vy2qfnbefidd2sjf@x \
--to=josh@joshtriplett.org \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob.keller@gmail.com \
--cc=mh@glandium.org \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
/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).