From: Jeff King <peff@peff.net>
To: David Turner <dturner@twopensource.com>
Cc: "Øyvind A. Holm" <sunny@sunbase.org>,
"Junio C Hamano" <gitster@pobox.com>,
"git mailing list" <git@vger.kernel.org>
Subject: Re: git fsck exit code?
Date: Tue, 9 Sep 2014 18:09:34 -0400 [thread overview]
Message-ID: <20140909220933.GB14029@peff.net> (raw)
In-Reply-To: <1409595463.3057.3.camel@leckie>
On Mon, Sep 01, 2014 at 02:17:43PM -0400, David Turner wrote:
> > I don't think git fsck should return !0 in this case. Yes, it's an
> > inconsistency in the repo, but it's sometimes due to erroneous
> > conversions from another SCM or some other (non-standard) implementation
> > of the git client. I've seen things like this (and other inconsistencies
> > in repos, like wrong date formats, non-standard Author fields, unsorted
> > trees, zero-padded file modes and so on), and the thing is, owners of
> > public repos with these errors tend to avoid fixing it because it
> > changes the commit SHAs. If git fsck starts to return !0 on these
> > errors, it will always return error on that repo, which in practise
> > means that the error code is rendered useless. IMHO git fsck should only
> > return !0 on errors that can be fixed without changing the commit
> > history, for example missing or invalid objects.
>
> We could have one exit code for errors which can be fixed without
> rewriting history, and another for errors that can't. Or different
> command-line arguments to suppress errors of this sort.
>
> In my case, I actually could fix the issue, because it was in a
> newly-created branch; I just rewrote the script that created the branch
> to be a little smarter.
I think there's obviously some disagreement or room for interpretation
on the exit code. Perhaps a better path forward is to have a
machine-readable output from fsck in the first place, and then we can
annotate each warning/error with extra information that a caller can
use.
As it is now, you have to scrape fsck's stderr stream to figure out what
happened (which is a thing I have done, and it felt dirty and wrong).
-Peff
prev parent reply other threads:[~2014-09-09 22:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-27 22:10 git fsck exit code? David Turner
2014-08-29 18:53 ` Jeff King
2014-08-29 19:21 ` Junio C Hamano
2014-08-29 20:18 ` David Turner
2014-08-29 20:31 ` Jeff King
2014-08-29 20:47 ` Junio C Hamano
2014-09-09 22:03 ` [PATCH] fsck: exit with non-zero status upon error from fsck_obj() Junio C Hamano
2014-09-09 22:07 ` Jeff King
2014-09-12 3:38 ` [PATCH] fsck: return non-zero status on missing ref tips Jeff King
2014-09-12 4:29 ` Jeff King
2014-09-12 4:38 ` Jeff King
2014-09-12 4:58 ` Junio C Hamano
2014-09-12 5:12 ` Jeff King
2014-09-15 14:42 ` Michael Haggerty
2014-09-15 14:57 ` Michael Haggerty
2014-09-09 22:21 ` [PATCH] fsck: exit with non-zero status upon error from fsck_obj() Junio C Hamano
2014-09-09 22:29 ` Jonathan Nieder
2014-08-31 18:54 ` git fsck exit code? Øyvind A. Holm
2014-09-01 11:54 ` Øyvind A. Holm
2014-09-01 18:17 ` David Turner
2014-09-09 22:09 ` Jeff King [this message]
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=20140909220933.GB14029@peff.net \
--to=peff@peff.net \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=sunny@sunbase.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.