All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] disable grafts during fetch/push/bundle
Date: Tue, 04 Mar 2014 12:52:18 -0800	[thread overview]
Message-ID: <xmqqd2i1k7p9.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <20140304174806.GA11561@sigill.intra.peff.net> (Jeff King's message of "Tue, 4 Mar 2014 12:48:07 -0500")

Jeff King <peff@peff.net> writes:

> When we are creating a pack to send to a remote, we should
> make sure that we are not respecting grafts or replace refs.
> Otherwise, we may end up sending a broken pack to the other
> side that does not contain all objects (either omitting them
> entirely, or using objects that the other side does not have
> as delta bases).
>
> We already make an attempt to do the right thing in several
> places by turning off read_replace_refs. However, we missed
> at least one case (during bundle creation), and we do
> nothing anywhere to handle grafts.

"Doing nothing for grafts" has been pretty much a deliberate
omission.  Because we have no way to transfer how histories are
grafted together, people cloning from a repository that grafts away
a commit that records a mistakenly committed sekrit will end up with
a disjoint history, instead of exposing the sekrit to them, and are
expected to join the history by recreating grafts (perhaps a README
of such a project instructs them to do so).  That was deemed far
better than exposing the hidden history, I think.

And "replace tries to do the right thing" was an attempt to rectify
that misfeature of grafts in that we now do have a way to transfer
how the history is grafted together, so that project README does not
have to instruct the fetcher of doing anything special.

It _might_ be a misfeature, however, for the object connectivity
layer to expose a part of the history replaced away to the party
that fetches from such a repository.  Ideally, the "right thing"
ought to be to include history that would be omitted if we did not
have the replacement (i.e. adding parents the underlying commit does
not record), while not following the history that replacement wants
to hide (i.e. excluding the commits replacement commits overlay).

  reply	other threads:[~2014-03-04 20:52 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-04 17:48 [PATCH] disable grafts during fetch/push/bundle Jeff King
2014-03-04 20:52 ` Junio C Hamano [this message]
2014-03-05  0:56   ` Jeff King
2014-03-05 18:49     ` Junio C Hamano
2014-03-05 18:52       ` Jeff King
2014-03-05 19:18         ` Junio C Hamano
2014-03-05 19:28           ` Jeff King
2014-03-05 20:24             ` Junio C Hamano
2014-03-06  8:42           ` Michael Haggerty
2014-03-06  9:17             ` Christian Couder
2014-03-06 15:56             ` Jeff King
2014-03-06 16:41               ` Michael Haggerty
2014-03-06 17:48                 ` Jeff King
2014-03-06 17:49                   ` [RFC/PATCH 1/4] replace: refactor command-mode determination Jeff King
2014-03-06 17:49                   ` [RFC/PATCH 2/4] replace: use OPT_CMDMODE to handle modes Jeff King
     [not found]                     ` <CAP8UFD2c0UKT8Uyw4j9SzKGx2oLn=o7N-dtvQHPaaBtLT6ggcw@mail.gmail.com>
2014-03-06 18:48                       ` Jeff King
2014-03-06 17:49                   ` [RFC/PATCH 3/4] replace: factor object resolution out of replace_object Jeff King
2014-03-06 17:51                   ` [RFC/PATCH 4/4] replace: add --edit option Jeff King
2014-03-07  1:57                     ` Eric Sunshine
2014-03-07 17:17                       ` Jeff King
2014-03-06 19:00                   ` [PATCH] disable grafts during fetch/push/bundle Junio C Hamano
2014-03-06 19:07                     ` Jeff King
2014-03-06 23:01                   ` Philip Oakley
2014-03-06 23:29                     ` Michael Haggerty
2014-03-06 23:39                       ` Junio C Hamano
2014-03-07  7:08                         ` Christian Couder
2014-03-07 17:19                           ` Jeff King
2014-03-19 22:39                             ` Junio C Hamano
2014-03-21  0:49                               ` Jeff King
2014-03-06 23:48                       ` Philip Oakley
2014-03-04 23:36 ` Eric Sunshine
2014-03-05  0:37   ` Jeff King
2014-03-05  1:00     ` Eric Sunshine
2014-03-05  1:05       ` Jeff King
2014-03-05  1:07         ` Eric Sunshine

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=xmqqd2i1k7p9.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --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 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.