All of lore.kernel.org
 help / color / mirror / Atom feed
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: Fri, 31 Oct 2014 23:33:27 -0400	[thread overview]
Message-ID: <20141101033327.GA8307@peff.net> (raw)
In-Reply-To: <xmqqvbmzsyfy.fsf@gitster.dls.corp.google.com>

On Fri, Oct 31, 2014 at 02:48:17PM -0700, Junio C Hamano wrote:

> Programs that read a pack data stream unpack-objects were originally
> designed to ignore cruft after the pack data stream ends, and
> because the bundle file format ends with pack data stream, you
> should have been able to append extra information at the end without
> breaking older clients.  Alas, this principle is still true for
> unpack-objects, but index-pack broke it fairly early on, and we use
> the latter to deal with bundles, so we cannot just tuck extra info
> at the end of an existing bundle.  You'd instead need a new option
> to create a bundle that cannot be read by existing clients X-<.

I think you could use a similar NUL-trick to what we do in the online
protocol, and have a ref section like:

  ...sha1... refs/heads/master
  ...sha1... refs/heads/confused-with-master
  ...sha1... HEAD\0symref=refs/heads/master

The current parser reads into a strbuf up to the newline, but we ignore
everything after the NUL, treating it like a C string. Prior to using
strbufs, we used fgets, which behaves similarly (you could not know from
fgets that there is extra data after the NUL, but that is OK; we only
want older versions to ignore the data, not do anything useful with it).

-Peff

  reply	other threads:[~2014-11-01  3:33 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 [this message]
2014-11-02 22:54             ` Philip Oakley
2014-11-03 18:26               ` Junio C Hamano
2014-11-03 22:04                 ` Jeff King
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=20141101033327.GA8307@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.