From: "Shawn O. Pearce" <spearce@spearce.org>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
PJ Hyett <pjhyett@gmail.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org
Subject: Re: Bad objects error since upgrading GitHub servers to 1.6.1
Date: Wed, 28 Jan 2009 08:16:53 -0800 [thread overview]
Message-ID: <20090128161652.GK1321@spearce.org> (raw)
In-Reply-To: <20090128081745.GA2172@coredump.intra.peff.net>
Jeff King <peff@peff.net> wrote:
> On Wed, Jan 28, 2009 at 12:05:33AM -0800, Junio C Hamano wrote:
> > Jeff King <peff@peff.net> writes:
> > >
> > > C--D
> > > /
> > > A--B
> > > \
> > > E--F
>
> Don't the other changes have similar parallel use cases? [2/2] also deals
> with tag lookup. Wouldn't you also expect, if you had a tag "T" pointing
> to "E" in the above scenario that "git rev-list T..D" would barf? I
> really think you don't want to ignore missing negations _ever_ unless
> the caller knows that such a miss is really only about optimization and
> not correctness.
Exactly what I just said in my other message.
> Side note:
>
> As you described, we expect to reach this situation from a partial
> transfer. Which means that you don't actually have a _ref_ for "T" (or
> "F"). So it is unlikely to come up in normal use (you would have to
> manually specify the sha1 of a broken portion of the graph).
True, but in the send-pack case we are discussing the remote side
has specified the SHA-1 of broken portions of the graph to us,
and we've taken that into consideration. So we have to fix that
assumption we've made.
> But what is more important is that your repository _is_ corrupted,
Depends. If the SHA-1 came from the remote side during send-pack,
it doesn't matter that we have a broken chain along that path,
it may have been a dumb transport fetch that was interrupted.
Our local repository isn't corrupt, it just has some extra crap
laying around that hasn't gc'd yet.
If the SHA-1 came from the user, then it depends on the context
of why the user is giving it to us. In pretty much every case,
yes, its a corruption and we should be aborting. :-)
Actually, the only time where it *isn't* a corruption is when its
input to "git bundle create A.bdl ... -not $SOMEBADID" as that is
the exact same thing as coming from the other side via send-pack.
> I
> think we are losing an important method by which the user finds out. Git
> is usually very good at informing you of a problem in the repo early,
> and I think unconditionally ignoring missing objects would lose that.
Yup, I agree. But as you and Junio have already pointed out, C Git
can miss some types of corruption because the revision machinary has
some gaps. *sigh*
I'd really like to see those gaps closed. But I don't have a good
enough handle on the code structure of the C Git revision machinary
to do that myself in a short period of time. I know JGit's well...
but that's only because I wrote it. ;-)
Its now on my wish list of things I wish I had time for in C Git.
But perhaps someone who is more familiar with the revision machinary
will get to it first.
--
Shawn.
next prev parent reply other threads:[~2009-01-28 16:18 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-27 23:04 Bad objects error since upgrading GitHub servers to 1.6.1 PJ Hyett
2009-01-27 23:10 ` PJ Hyett
2009-01-27 23:37 ` Johannes Schindelin
2009-01-27 23:39 ` Shawn O. Pearce
2009-01-27 23:51 ` Junio C Hamano
2009-01-28 0:15 ` PJ Hyett
2009-01-28 0:34 ` PJ Hyett
2009-01-28 1:06 ` Junio C Hamano
2009-01-28 1:32 ` Junio C Hamano
2009-01-28 1:38 ` [PATCH] send-pack: Filter unknown commits from alternates of the remote Björn Steinbrink
2009-01-28 1:47 ` Junio C Hamano
2009-01-28 3:33 ` Junio C Hamano
2009-01-28 3:58 ` Björn Steinbrink
2009-01-28 4:13 ` Junio C Hamano
2009-01-28 4:32 ` Junio C Hamano
2009-01-28 1:44 ` Bad objects error since upgrading GitHub servers to 1.6.1 Junio C Hamano
2009-01-28 1:57 ` PJ Hyett
2009-01-28 2:02 ` Shawn O. Pearce
2009-01-28 3:09 ` Junio C Hamano
2009-01-28 3:30 ` Shawn O. Pearce
2009-01-28 3:52 ` Stephen Bannasch
2009-01-28 3:57 ` Shawn O. Pearce
2009-01-28 5:44 ` Junio C Hamano
2009-01-28 4:38 ` Junio C Hamano
2009-01-28 4:41 ` Shawn O. Pearce
2009-01-28 7:14 ` Junio C Hamano
2009-01-28 7:41 ` Junio C Hamano
2009-01-28 7:51 ` [PATCH 1/2] send-pack: do not send unknown object name from ".have" to pack-objects Junio C Hamano
2009-01-28 15:45 ` Bad objects error since upgrading GitHub servers to 1.6.1 Linus Torvalds
2009-01-28 19:00 ` Junio C Hamano
2009-01-28 7:55 ` Jeff King
2009-01-28 8:05 ` Junio C Hamano
2009-01-28 8:17 ` Jeff King
2009-01-28 16:16 ` Shawn O. Pearce [this message]
2009-01-28 18:16 ` Jeff King
2009-01-28 18:26 ` Junio C Hamano
2009-01-28 8:22 ` Junio C Hamano
2009-01-28 9:24 ` Jeff King
2009-01-28 16:09 ` Shawn O. Pearce
2009-01-28 16:38 ` Nicolas Pitre
2009-01-28 18:11 ` Jeff King
2009-01-28 1:00 ` Linus Torvalds
2009-01-28 1:15 ` Björn Steinbrink
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=20090128161652.GK1321@spearce.org \
--to=spearce@spearce.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=pjhyett@gmail.com \
--cc=torvalds@linux-foundation.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.