From: Michael Haggerty <mhagger@alum.mit.edu>
To: Jeff King <peff@peff.net>, Stefan Beller <sbeller@google.com>
Cc: Junio C Hamano <gitster@pobox.com>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: [PATCH 07/13] prune_remote(): use delete_refs()
Date: Tue, 09 Jun 2015 12:50:13 +0200 [thread overview]
Message-ID: <5576C4E5.4080107@alum.mit.edu> (raw)
In-Reply-To: <20150608171202.GB6863@peff.net>
On 06/08/2015 07:12 PM, Jeff King wrote:
> On Mon, Jun 08, 2015 at 09:57:04AM -0700, Stefan Beller wrote:
>
>> On Mon, Jun 8, 2015 at 4:45 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
>>> This will result in errors being emitted for references that can't be
>>> deleted, but that is a good thing.
>>
>> This sounds a bit like hand-waving to me. "Trust me, I'm an engineer!".
>
> I think the argument is "we failed to do that the user asked for, but
> never reported the reason why".
>
> But I don't see how that is the case. We already complain if
> repack_without_refs fail, and AFAICT the original call to delete_ref()
> would emit an error, as well.
The old and new code report errors that come from repack_without_refs()
the same way. The difference is how they report errors within delete_ref().
The old code only allowed delete_ref() to emit its error.
The new code (in delete_refs()) allows delete_ref() to emit its error,
but then follows it up with
error(_("could not remove reference %s"), refname)
The "could not remove reference" error originally came from a similar
message in remove_branches() (from builtin/remote.c).
I *think* this is an improvement, because the error from delete_ref()
(which usually comes from ref_transaction_commit()) can be pretty
low-level, like
Cannot lock ref '%s': unable to resolve reference %s: %s
where the last "%s" is the original strerror.
I would be happy to change the behavior if somebody has a concrete wish.
At the same time I don't think we need to sweat the details too much,
because these errors should only ever be seen in the case of a broken
repository or a race between two processes; i.e., only in pretty rare
and anomalous situations.
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
next prev parent reply other threads:[~2015-06-09 10:50 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 11:45 [PATCH 00/13] Improve "refs" module encapsulation Michael Haggerty
2015-06-08 11:45 ` [PATCH 01/13] delete_ref(): move declaration to refs.h Michael Haggerty
2015-06-08 16:43 ` Stefan Beller
2015-06-09 10:10 ` Michael Haggerty
2015-06-09 16:42 ` Stefan Beller
2015-06-13 14:30 ` Michael Haggerty
2015-06-08 11:45 ` [PATCH 02/13] remove_branches(): remove temporary Michael Haggerty
2015-06-08 16:45 ` Stefan Beller
2015-06-08 11:45 ` [PATCH 03/13] delete_ref(): handle special case more explicitly Michael Haggerty
2015-06-08 16:48 ` Stefan Beller
2015-06-09 10:17 ` Michael Haggerty
2015-06-08 11:45 ` [PATCH 04/13] delete_refs(): new function for the refs API Michael Haggerty
2015-06-08 11:45 ` [PATCH 05/13] delete_refs(): improve error message Michael Haggerty
2015-06-09 18:47 ` Junio C Hamano
2015-06-08 11:45 ` [PATCH 06/13] delete_refs(): convert error message to lower case Michael Haggerty
2015-06-08 16:51 ` Stefan Beller
2015-06-09 10:23 ` Michael Haggerty
2015-06-08 11:45 ` [PATCH 07/13] prune_remote(): use delete_refs() Michael Haggerty
2015-06-08 16:57 ` Stefan Beller
2015-06-08 17:12 ` Jeff King
2015-06-09 10:50 ` Michael Haggerty [this message]
2015-06-09 11:53 ` Jeff King
2015-06-08 11:45 ` [PATCH 08/13] repack_without_refs(): make function private Michael Haggerty
2015-06-08 11:45 ` [PATCH 09/13] initial_ref_transaction_commit(): function for initial ref creation Michael Haggerty
2015-06-08 11:45 ` [PATCH 10/13] refs: remove some functions from the module's public interface Michael Haggerty
2015-06-08 11:45 ` [PATCH 11/13] initial_ref_transaction_commit(): check for duplicate refs Michael Haggerty
2015-06-08 11:45 ` [PATCH 12/13] initial_ref_transaction_commit(): check for ref D/F conflicts Michael Haggerty
2015-06-08 11:45 ` [PATCH 13/13] refs: move the remaining ref module declarations to refs.h Michael Haggerty
2015-06-08 17:03 ` [PATCH 00/13] Improve "refs" module encapsulation Stefan Beller
2015-06-09 18:47 ` 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=5576C4E5.4080107@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=sbeller@google.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).