From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Philip Oakley" <philipoakley@iee.org>,
"René Scharfe" <l.s.r@web.de>,
"Git Mailing List" <git@vger.kernel.org>
Subject: Re: [PATCH] use child_process_init() to initialize struct child_process variables
Date: Mon, 3 Nov 2014 17:04:08 -0500 [thread overview]
Message-ID: <20141103220408.GA12462@peff.net> (raw)
In-Reply-To: <xmqqmw88rvh3.fsf@gitster.dls.corp.google.com>
On Mon, Nov 03, 2014 at 10:26:48AM -0800, Junio C Hamano wrote:
> "Philip Oakley" <philipoakley@iee.org> writes:
>
> > This certainly looks the way to go. The one extra question would be
> > whether the symref should be included by default when HEAD is present,
> > or only if there was possible ambiguity between the other listed
> > refs.
>
> Just include the "\0symref=..." for any symbolic ref you mention,
> and the ref in question does not even have to be "HEAD", I would
> say.
>
> The mechanism chosen should be something that will be transparently
> ignored by existing implementations, there is no need to make the
> data format conditional.
One thing I glossed over in my suggestion of the NUL trick: it works on
git.git, but no clue about elsewhere. I can imagine that other non-C
implementations might treat the whole thing (NUL and extra data
included) as the refname. Back when we did the NUL trick to the online
protocol, git.git was the only serious implementation. But nowadays we
should at least consider the impact on JGit, libgit2, and/or dulwich
(breaking them is not necessarily a showstopper IMHO, but we should at
least know what we are breaking).
I peeked at libgit2 and I think it does not support bundles at all yet,
so that is safe. Grepping for "bundle" in dulwich turns up no hits,
either.
Looks like JGit does support them. I did a very brief test, and it seems
to silently ignore a HEAD ref that has the NUL (I guess maybe it just
rejects it as a malformed refname).
We could make JGit happier either by:
1. Only including the symref magic in ambiguous cases, so that regular
ones Just Work as usual.
2. Including two lines, like:
$sha1 HEAD\0symref=refs/heads/master
$sha1 HEAD
which JGit does the right thing with (and git.git seems to, as
well).
-Peff
next prev parent reply other threads:[~2014-11-03 22:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-28 20:52 [PATCH] use child_process_init() to initialize struct child_process variables René Scharfe
2014-10-28 21:58 ` mike.gorchak.qnx
2014-10-29 17:21 ` Jeff King
2014-10-29 19:16 ` Junio C Hamano
2014-10-30 18:07 ` Junio C Hamano
2014-10-30 21:25 ` Jeff King
2014-10-30 18:08 ` [PATCH] bundle: split out a helper function to compute and write prerequisites Junio C Hamano
2014-10-30 21:26 ` Jeff King
2014-10-30 21:35 ` [PATCH] use child_process_init() to initialize struct child_process variables Jeff King
2014-10-31 0:19 ` Philip Oakley
2014-10-31 21:48 ` Junio C Hamano
2014-11-01 3:33 ` Jeff King
2014-11-02 22:54 ` Philip Oakley
2014-11-03 18:26 ` Junio C Hamano
2014-11-03 22:04 ` Jeff King [this message]
2014-11-03 23:42 ` Junio C Hamano
2014-11-04 21:56 ` Junio C Hamano
2014-11-04 23:32 ` Jeff King
2014-11-05 0:32 ` Junio C Hamano
2014-11-05 13:41 ` Philip Oakley
2014-11-05 13:35 ` Philip Oakley
2014-11-05 19:35 ` Jeff King
2014-11-05 23:50 ` Philip Oakley
2014-11-09 13:49 ` René Scharfe
2014-11-10 7:14 ` Jeff King
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=20141103220408.GA12462@peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=l.s.r@web.de \
--cc=philipoakley@iee.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).