From: Bryan Larsen <bryan.larsen@gmail.com>
To: Juliusz Chroboczek <Juliusz.Chroboczek@pps.jussieu.fr>
Cc: darcs-devel@darcs.net, git@vger.kernel.org
Subject: git, porcelain, darcs, and version 1.0
Date: Mon, 18 Jul 2005 00:46:21 -0400 [thread overview]
Message-ID: <42DB341D.6050506@gmail.com> (raw)
In-Reply-To: <7islyev5s4.fsf@lanthane.pps.jussieu.fr>
Juliusz Chroboczek wrote:
> There are three ways to do that:
>
> (1) require that the users put a suitable libgit.a in /usr/local/lib
> before building Darcs, and distribute a tarball of Git from
> darcs.net;
I was under the impression that the stablest interface to git was the
command line; we use spawnvp in stacked git. I've been using it with
repositories that make the Linux kernel look small.
I certainly don't think the lib interface is anywhere near stable:
Linus accepted my change to index_fd far too easily.
>
> (2) include just the sources needed for libgit.a in Darcs, and have
> the Darcs build build a local libgit
>
> (3) as (2), but include all of Git, including their
> ``user-friendly'' scripts.
Ugh. That's what they do in the commercial world. We have it so much
better here in Linux & BSD land: you just add a "depends libgit1" line
to your package, and the right thing happens: minor updates happen
automatically and changes that break the interface don't. Of course,
keeping it that easy for the user requires active effort from us, the
developers, and sometimes the pain spills over, but the benefits are nice.
I see too major long-term alternatives:
1) talk the darcs guys into using spawnvp
2) talk the git people into exporting a stable lib interface
It's my opinion that #1 is a non-starter. We want others to interact
with us. I'm going to use spawnvp for my porcelain, but we should be
inclusive.
The current 'libgit' probably contains more than Linus and Junio are
comfortable locking down as a stable interface, but I'm sure that
there's a subset that they'd be comfortable with once a relative amount
of stability is achieved, or it may be achievable via some other method.
I propose that Darcs includes all of git for now. (I prefer this over
partial inclusion; anybody should be able to take the darcs sources and
easily drop in a later git). However, the long term goal is for a
library. Darcs and git work together to determine the minimal amount
that needs to go into libgit1.so. It gets blessed by being documented,
and doesn't change until libgit2.so.
I'd like to see this added to Junio's list of "1.0" goals.
A similar 1.0 goal would be to document porcelain's use of the .git
directory. For instance, stacked git uses .git/patches,
.git/patchdescr.tmpl and .git/patchexport.tmpl. If Linus does not
accept a patch documenting this usage, stacked git should use .stgit
instead.
Bryan
next prev parent reply other threads:[~2005-07-18 4:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-16 20:45 Darcs-Git: upgrading to Git 0.99 Juliusz Chroboczek
2005-07-17 10:40 ` [darcs-devel] " David Roundy
2005-07-18 4:46 ` Bryan Larsen [this message]
2005-07-18 19:11 ` git, porcelain, darcs, and version 1.0 Junio C Hamano
2005-07-18 20:18 ` Bryan Larsen
2005-07-18 19:49 ` Juliusz Chroboczek
2005-07-18 20:28 ` Bryan Larsen
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=42DB341D.6050506@gmail.com \
--to=bryan.larsen@gmail.com \
--cc=Juliusz.Chroboczek@pps.jussieu.fr \
--cc=darcs-devel@darcs.net \
--cc=git@vger.kernel.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).