From: Josh Triplett <josh@joshtriplett.org>
To: Jeff King <peff@peff.net>
Cc: Jacob Keller <jacob.keller@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
Git mailing list <git@vger.kernel.org>
Subject: Re: Regarding "git log" on "git series" metadata
Date: Fri, 4 Nov 2016 15:55:39 -0600 [thread overview]
Message-ID: <20161104215538.xmpth6qfuou6nde6@x> (raw)
In-Reply-To: <20161104194907.3yxu2rkayfyic4dr@sigill.intra.peff.net>
On Fri, Nov 04, 2016 at 03:49:07PM -0400, Jeff King wrote:
> On Fri, Nov 04, 2016 at 12:19:55PM -0700, Jacob Keller wrote:
>
> > I agree with your assessment here. The main difficulty in implementing
> > gitrefs is to ensure that they actually do get picked up by
> > reachability checks to prevent dropping commits. I'm not sure how easy
> > this is, but I would much rather we go this route rather than
> > continuing along with the hack. This seems like the ideal solution,
> > since it solves the entire problem and doesn't need more hacks bolted
> > on.
>
> I think the main complication is that the reachability rules are used
> during object transfer. So you'd probably want to introduce some
> protocol extension to say "I understand gitrefs", so that when one side
> says "I have sha1 X and its reachable objects", we know whether they are
> including gitrefs there. And likewise receivers with
> transfer.fsckObjects may complain about the new gitref tree mode
> (fortunately a new object type shouldn't be needed).
>
> You might also want fallback rules for storing gitrefs on "old" servers
> (e.g., backfilling gitrefs you need if the server didn't them in the
> initial fetch). But I guess storing any gitrefs on such a server is
> inherently dangerous, because the server might prune them at any time.
>
> So perhaps a related question is: how can gitrefs be designed such that
> existing servers reject them (rather than accepting the push and then
> later throwing away half the data). It would be easy to notice in the
> client during a push that we are sending gitrefs to a server which does
> not claim that capability. But it seems more robust if it is the server
> who decides "I will not accept these bogus objects".
This seems like the critical problem, here. The parent hack I used in
git-series might be a hack, but it transparently works with old servers
and clients. So, for instance, I can push a git-series ref to github,
with no changes required on github's part. If git added gitrefs, and I
started using them in git-series, then that'd eliminate parent hack and
allow many standard git tools to work naturally on git-series commits
and history, but it'd also mean that people couldn't push git-series
commits to any server until that server updates git.
That said, I'd *love* to have gitrefs available, for a wide variety of
applications, and I can see an argument for introducing them and waiting
a few years for them to become universally available, similar to the
process gitlinks went through.
But I'd also love to have a backward-compatible solution.
- Josh Triplett
next prev parent reply other threads:[~2016-11-04 21:55 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 [this message]
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
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=20161104215538.xmpth6qfuou6nde6@x \
--to=josh@joshtriplett.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob.keller@gmail.com \
--cc=peff@peff.net \
/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).