git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Nicolas Pitre <nico@fluxnic.net>
Cc: Scott Chacon <schacon@gmail.com>,
	"Mike.lifeguard" <mike.lifeguard@gmail.com>,
	Avery Pennarun <apenwarr@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Jonathan Nieder <jrnieder@gmail.com>, git <git@vger.kernel.org>
Subject: Re: Tree with leading '0' modes in 1.7.0.3
Date: Sat, 27 Mar 2010 12:14:05 -0700	[thread overview]
Message-ID: <20100327191405.GF10910@spearce.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1003270959110.694@xanadu.home>

Nicolas Pitre <nico@fluxnic.net> wrote:
> On Sat, 27 Mar 2010, Scott Chacon wrote:
> > > My stance has always been that the C Git is authoritative with regards to
> > > formats and protocols. ??It's up to Github to fix their screw-up.
> > 
> > It is fixed and will be deployed soon, but really, there is no reason
> > to be snippy.  It is a simple and minor mistake effecting very few
> > repositories (maybe 100 out of 730k)

What is the C Git stance on these 100 repositories then?  Are they
now considered corrupt?  Or is 100 enough in the wild that we have
to accept the problem, just like we accept the 10664 mode issue from
"ancient" Linux?

I would love to say "those are corrupt, sorry, fix your repository".

But we have traditionally tried to help our users, and not cause
them pain.  Forcing a rewrite on these 100 projects to fix up the
corruption is going to be painful for them.  

> > , and the only reason it's an
> > issue at all is that JGit is not following the authoritative CGit
> > implementation of basically ignoring it.
> 
> But again CGit's fsck is not ignoring this discrepancy.  And if the CGit 
> core is otherwise silently accepting it then it is a mistake.

Right.  I tend to agree.  CGit was too lax here, fsck shouldn't
be issuing a warning, it should be a fatal error.  Both CGit and
JGit are too lax by not failing when reading that tree during
normal processing.
 
> > Also, if we're all concerned about "Git reimplementation du jour"
> > deviations, then we need to focus on libifying Git so there isn't a
> > need for such re-implementations.  I'm hoping to help with a possible
> > GSoC project on libgit2, but the lack of a linkable library will
> > ensure that re-implementations in nearly every useful language will
> > continue.
> 
> Don't get me wrong.  I'm not against Git reimplementations per se, as 
> long as they rigorously implement the exact format and protocol from 
> CGit.  In that sense it is important that the CGit fsck and verify-pack 
> tools be exploited on objects/packs produced by alternate Git 
> implementation systematically to find such issues.

When JGit had the tree sort order wrong, JGit was in the wrong,
and any repository which contained those corrupt trees had to be
fixed by rewriting them.  IIRC it was only the JGit repository
itself that had this problem in the wild.  But we fixed our code.

IMHO, this leading '0' thing is a similar breakage.  We shouldn't
relax CGit or JGit to accept it just because the Ruby implementation
of Git got the tree encoding wrong.  If anything, we should teach
these implementations to catch these sorts of problems earlier.

-- 
Shawn.

  reply	other threads:[~2010-03-27 19:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-26 21:56 Tree with leading '0' modes in 1.7.0.3 Shawn O. Pearce
2010-03-26 22:26 ` Jonathan Nieder
2010-03-26 22:29   ` Shawn O. Pearce
2010-03-26 22:40     ` Jonathan Nieder
2010-03-26 23:09       ` Junio C Hamano
2010-03-26 22:59     ` Mike.lifeguard
2010-03-26 23:05       ` Shawn O. Pearce
2010-03-26 23:22         ` Mike.lifeguard
2010-03-26 23:49           ` Jonathan Nieder
2010-03-26 23:50         ` Junio C Hamano
2010-03-26 23:56           ` Avery Pennarun
2010-03-27  0:00             ` Mike.lifeguard
2010-03-27  1:22               ` Shawn O. Pearce
2010-03-27  1:30                 ` Nicolas Pitre
2010-03-27  1:34                   ` Shawn O. Pearce
2010-03-27  1:56                     ` Nicolas Pitre
2010-03-27  2:33                       ` Avery Pennarun
2010-03-27 12:44                       ` Scott Chacon
2010-03-27 14:21                         ` Nicolas Pitre
2010-03-27 19:14                           ` Shawn O. Pearce [this message]
2010-03-27 19:30                             ` A Large Angry SCM
2010-03-27 19:32                               ` Shawn O. Pearce
2010-03-27 19:39                                 ` A Large Angry SCM
2010-03-27 19:44                                   ` A Large Angry SCM
2010-03-27 19:57                                     ` A Large Angry SCM
2010-03-28 17:38                                     ` Sitaram Chamarty
2010-03-28 23:28                                       ` A Large Angry SCM
2010-03-27 20:13                             ` A Large Angry SCM
2010-03-27 20:16                             ` Junio C Hamano
2010-03-27 22:16                             ` Avery Pennarun
2010-03-27  5:16                     ` Junio C Hamano
2010-03-27 19:20                       ` Shawn O. Pearce
2010-03-27 20:04                         ` Junio C Hamano

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=20100327191405.GF10910@spearce.org \
    --to=spearce@spearce.org \
    --cc=apenwarr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=mike.lifeguard@gmail.com \
    --cc=nico@fluxnic.net \
    --cc=schacon@gmail.com \
    /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).