From: Michael Haggerty <mhagger@alum.mit.edu>
To: Jeff King <peff@peff.net>
Cc: Shawn Pearce <spearce@spearce.org>,
git discussion list <git@vger.kernel.org>,
Vicent Marti <tanoku@gmail.com>,
Brad King <brad.king@kitware.com>,
Johan Herland <johan@herland.net>
Subject: Re: [RFC/WIP] Pluggable reference backends
Date: Mon, 10 Mar 2014 22:07:18 +0100 [thread overview]
Message-ID: <531E2986.8050604@alum.mit.edu> (raw)
In-Reply-To: <20140310155230.GA29801@sigill.intra.peff.net>
On 03/10/2014 04:52 PM, Jeff King wrote:
> On Mon, Mar 10, 2014 at 07:30:45AM -0700, Shawn Pearce wrote:
>
>>> * Store references in a SQLite database, to get correct transaction
>>> handling.
>>
>> No to SQLLite in git-core. Using it from JGit requires building
>> SQLLite and a JNI wrapper, which makes JGit significantly less
>> portable. I know SQLLite is pretty amazing, but implementing
>> compatibility with it from JGit will be a big nightmare for us.
>
> That seems like a poor reason not to implement a pluggable feature for
> git-core. If we implement it, then a site using only git-core can take
> advantage of it. Sites with JGit cannot, and would use a different
> pluggable storage mechanism that's supported by both. But if we don't
> implement, it hurts people using only git-core, and it does not help
> sites using JGit at all.
I think it's important to distinguish between two types of backend:
* Exotic backends, optimized for servers, or embedded systems, or other
controlled environments where the person deploying Git can decide about
the whole technology stack. Here I say let a thousand flowers bloom.
If user A wants to try an Oracle backend and only uses JGit, there's no
need for him to implement the equivalent backend for git-core or libgit2.
* Mainstream backends, intended for use by end-users on their
workstations and notebooks. Such backends will be pretty worthless if
they are not supported more or less universally, because one user will
want to use the command line and Eclipse, another Visual Studio and
TortoiseGit, a third will use GitHub for Mac plus a bunch of shell
scripts written by his IT department. A backend that is not supported
by the big three Git implementations (git-core, libgit2, and JGit) will
probably be rejected by users. Realistically there will be at most a
couple of mainstream backends--in fact probably usually a single
established one and occasionally a single next-generation one waiting
for people to migrate slowly to it. For mainstream backends I think it
is important for the implementations to plan and coordinate ahead of
time to make sure everybody's concerns are addressed.
It sounds to me like Shawn is saying "please don't make a SQLite-based
backend the new default git-core backend" and Peff is saying "there is
no reason that a Git hosting service shouldn't experiment with a
SQLite-based backend". I see no contradiction there [1].
Also, please remember that I'm not advocating a SQLite backend or any
other at this time. I'm only refactoring code to open the way for
*future* flamefests :-)
Michael
[1] There might of course be a technical argument about whether a
SQLite-based backend would be SO AWESOME for end-users that switching to
it would be worth the extra inconvenience for the JGit folks.
Personally I'm skeptical.
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
next prev parent reply other threads:[~2014-03-10 21:07 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-10 11:00 [RFC/WIP] Pluggable reference backends Michael Haggerty
2014-03-10 11:44 ` Johan Herland
2014-03-10 14:30 ` Shawn Pearce
2014-03-10 15:51 ` Max Horn
2014-03-10 15:52 ` Jeff King
2014-03-10 16:14 ` David Kastrup
2014-03-10 16:28 ` David Lang
2014-03-10 19:42 ` Jeff King
2014-03-10 19:56 ` David Kastrup
2014-03-10 17:46 ` Junio C Hamano
2014-03-10 17:56 ` Jeff King
2014-03-10 21:07 ` Michael Haggerty [this message]
2014-03-11 2:39 ` Shawn Pearce
2014-03-12 10:26 ` egit vs. git behaviour (was: [RFC/WIP] Pluggable reference backends) Andreas Krey
2014-03-12 16:48 ` Shawn Pearce
2014-03-11 10:56 ` [RFC/WIP] Pluggable reference backends Karsten Blees
2014-03-12 11:43 ` 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=531E2986.8050604@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=brad.king@kitware.com \
--cc=git@vger.kernel.org \
--cc=johan@herland.net \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
--cc=tanoku@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 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).